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

How to query a single key and an array of keys simultaneously in 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"]

error "query_parse_error"

reason "keys is incompatible with key, start_key and end_key"

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

要获取带有特定键的文档,需要使用"key"参数。

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

在您的例子中,视图发出以下键:

[a_file_name, an_array_of_folder]

所以如果你想获取文件名="Car.jpg" AND doc.path = ["folder","subfolder"]的文档,你需要使用以下参数:

?key=["Car.jpg",["folder","subfolder"]]