CouchDb视图-在列表中键入

CouchDb视图-在列表中键入,couchdb,Couchdb,我想查询CouchDB,我有一个特定的需求:我的查询应该返回与此条件对应的文档的名称字段:id等于或包含在文档字段(列表)中。 例如,字段输出如下所示: "output": [ "doc_s100", "doc_s101", "doc_s102", "doc_s103", ], 例如,我想获取输出字段“doc_s102”中包含的所有文档。 我在设计文档中写了一个视图: "backward_by_docid": {

我想查询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)}"
       }
但只有当输出字段中有唯一值时,此视图才起作用。 如何解决此查询


谢谢

您必须迭代数组:

  if(doc.output) {
      for (var curOutput in doc.output) {
        emit (doc.output[curOutput],doc.name);
      }
  }
确保输出始终是数组(至少[])

。。当然,使用key=“xx”代替key=[“xxx”]