如何查询数组中的元素

How to query for an element in an array

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

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

]}

如何找到数组中的元素?

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

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

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