如何查询数组中的元素

时间:2015-01-12 12:57:36

标签: javascript mapreduce couchdb

以下文档存储在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":[

]}

如何在数组中找到元素?

1 个答案:

答案 0 :(得分:2)

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

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

然后,您的查询将查找具有梳子数组的所有文档,其中包括查询中指定的密钥。