如何在 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"]]
我的文档结构如下:
{
"_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 withkey
,start_key
andend_key
"
如果原来不兼容,那么你会如何尝试实现这样的查询?
要获取带有特定键的文档,需要使用"key"参数。
如果要查询多个特定的文档,需要使用keys参数(传递一个keys数组)
在您的例子中,视图发出以下键:
[a_file_name, an_array_of_folder]
所以如果你想获取文件名="Car.jpg" AND doc.path = ["folder","subfolder"]的文档,你需要使用以下参数:
?key=["Car.jpg",["folder","subfolder"]]