如何在CouchDB中同时查询单个键和一组键?

时间:2017-10-16 09:56:42

标签: javascript couchdb

我有以下文档结构:

{
  "_id": "123abc",
  "type": "file",
  "path": ["folder", "subfolder"],
  "filename": "Car.jpg"
}

我的观点如下:

function (doc) {
  if(doc.type=='file') {
    emit([doc.filename, doc.path], null);  
  }
}

当我尝试通过此URL进行查询时,我得到以下结果:

...?include_docs=true&key=["Car.jpg"]&keys=["folder", "subfolder"]

  

错误" query_parse_error"

     

原因" keyskeystart_keyend_key"

不兼容

如果它原来不兼容你怎么会尝试实现这样的查询?

1 个答案:

答案 0 :(得分:2)

您需要使用"键"想要获取具有特定键的文档时的参数。

如果要查询多个特定文档,则需要使用keys参数(传递一组键)

在您的情况下,视图会发出以下密钥:

  

[a_file_name,an_array_of_folder]

因此,如果你想获得文件名为" Car.jpg" AND doc.path = ["文件夹","子文件夹"],您需要使用以下参数:

  ?

键= [" Car.jpg" ["夹""子"]]