我正在使用cloudantDB,并希望查询看起来像这样的视图
function (doc) {
if(doc.name !== undefined){
emit([doc.name, doc.age], doc);
}
如果我有一个名单列表(我将使用选项' keys = []'为它)和一个年龄范围(对于哪个开始键),应该是获得结果的正确方法和endkey应该使用)
例子:我希望得到姓名" john"或"标记"或"约瑟夫"或者" santosh"年龄限制在20至30岁之间。
如果我去找名字列表,查询应该是键= [" john",....] 如果我去年龄查询应该使用startkey和endkey
我想两者兼顾:)
由于
答案 0 :(得分:1)
不幸的是,你不能这样做。使用键参数查询具有指定键的文档。例如,您不仅可以发送密钥= [“John”,“Mark”]& startkey = [null,20]& endkey = [{},30]。此查询只会且仅返回名称为 John 且标记且年龄为null的文档。
在您的问题中,您指定了CouchDB,但如果您使用的是Cloudant,index query可能会对您感兴趣。
你可以有类似的东西:
{
"selector": {
"$and": [
{
"name": {
"$in":["Mark","John"]
}
},
{
"year": {
"$gt": 20,
"$lt": 30
}
}
]
},
"fields": [
"name",
"age"
]
}
至于CouchDB,你需要分开你的请求(1个年龄请求和1个人),或者你在本地进行过滤。