我想查询CouchDB并且我有一个特定的需求:我的查询应该返回与此条件对应的文档的名称字段:id相等或包含在文档字段中(列表)。 例如,字段输出如下:
"output": [
"doc_s100",
"doc_s101",
"doc_s102",
"doc_s103",
],
我想在输出字段“doc_s102”中获取所有文档。 我在设计文档中写了一个视图:
"backward_by_docid": {
"map": "function(doc) {if(doc.output) emit(doc.output, doc.name)}"
}
但此视图仅在输出字段中具有唯一值时才有效。 如何解决此查询?
谢谢!
答案 0 :(得分:2)
你必须迭代数组:
if(doc.output) {
for (var curOutput in doc.output) {
emit (doc.output[curOutput],doc.name);
}
}
确保输出始终是一个数组(至少为[])
..当然使用key =“xx”而不是key = [“xxx”]