以下文档存储在CouchDB中

{
  {
    "_id": "1",
    "_rev": "3-2882a4696d580cdef754a93c7e5e77e7",
    "comb": [
        "4-5",
        "4-6",
        "5-6"
    ]
  },
  {
    "_id": "2",
    "_rev": "2-1991a898a5457308e3a89253e695cef5",
    "comb": [
        "4-5",
        "5-6"
    ]
  }
}


下面是地图功能

function(doc) {
  emit(doc.comb, null);
}


并且http://localhost:5984/comb/_design/snp/_view/by_test?key="4-6"仅返回

{"total_rows":2,"offset":0,"rows":[

]}


如何在数组中找到一个元素?

最佳答案

您需要为数组的每个元素调用emit

for (var i in doc.comb) {
    emit(doc.comb[i], null);
}


然后,您的查询将找到所有包含梳状数组的文档,其中包含查询中指定的键。

08-25 07:34