如何编写从数组中请求多个项目的查询?

时间:2015-10-20 18:28:50

标签: couchdb

以下是一个示例文档:

{
    "_id": "7d7db310ff3acc857c7f301f67979de5",
    "_rev": "1-3ed97634540c35292155ad40b99cafc1",
    "interests": [
        "cats",
        "dogs",
        "fish",
        "reptiles"
    ],
    "gender": "male",
    "phone": "716-555-0111"
}

我喜欢在数组中查找多个项目的查询。

例如,假设我想要一份同时拥有“猫”和“猫”的人的名单。 AND"狗"列在"兴趣。"

2 个答案:

答案 0 :(得分:1)

您可以创建一个简单的视图,例如" by_interests"与地图功能

function(doc) {
  if (doc.interests)
   doc.interests.forEach(function(interest){
     emit(interest, doc)
   })
}

然后查询结果

http://localhost:5984/db_name/_design/_desgin_name/_view/by_interests?keys=[%22cats%22,%22dogs%22]

答案 1 :(得分:-1)

您可以创建一个二级索引,其中仅包含包含猫和狗的文档。