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

Couchdb 如何编写从数组中请求多个项的查询?,couchdb,Couchdb,以下是一个示例文档: { "_id": "7d7db310ff3acc857c7f301f67979de5", "_rev": "1-3ed97634540c35292155ad40b99cafc1", "interests": [ "cats", "dogs", "fish", "reptiles" ], "gender": "male", "phone": "716-555-011

以下是一个示例文档:

{
    "_id": "7d7db310ff3acc857c7f301f67979de5",
    "_rev": "1-3ed97634540c35292155ad40b99cafc1",
    "interests": [
        "cats",
        "dogs",
        "fish",
        "reptiles"
    ],
    "gender": "male",
    "phone": "716-555-0111"
}
我想要一个在数组中查找多个项的查询


例如,假设我想要一个在“兴趣”下同时列出“猫”和“狗”的人的列表。

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

您可以创建一个简单的视图,例如带有映射功能的“按兴趣”

function(doc) {
  if (doc.interests)
   doc.interests.forEach(function(interest){
     emit(interest, doc)
   })
}
然后查询结果


我不太明白你的意思。您是指文档中的内容吗?在这种情况下,这是没有帮助的。如果您指的是在查询中创建某些内容,我不确定如何进行。我在临时视图中尝试了一下,但得到了以下错误:表达式不向函数求值。(function(doc){if(doc.interests)doc.interests.forEach(function(interests){emit(interests,doc}}}})谢谢,脚本可以工作,但它的工作方式类似于“OR”而不是“AND”,也就是说,如果一个人喜欢猫而不是狗,它们仍然会出现在列表中