在这种情况下,我通过创建索引查询在我的文档中使用设计文档,但是当我在Cloudant中运行以下选择器查询时,它会出现此错误:
{
"selector": {
"ne_status": {
"$eq": "Q"
},
"type": {
"$eq": "weak"
},
"parentId": {
"$eq": ""
}
}
}
经过一番挖掘,我发现了这个问题;这是声明:
**"parentId": {
"$eq": ""
}**
在我的场景中,我必须检查
"parentId" = ""
如果删除此语句,则选择器查询可以正常工作。
可能有另一种方法用突出显示的文本执行查询,但在那种情况下我们必须删除设计文档,根据我们的程序,这不是正确的方案, 因为我们正在通过java程序执行选择器。
是否有其他方法可以检查选择器查询中的空值?
答案 0 :(得分:2)
您可以使用$exists
selector选择不包含parentId
属性的文档:
"selector": {
...
,
"parentId": {
"$exists": false
}
}
设置"$exists": true
会返回包含该属性的文档。
您还可以使用以下表达式
{
"selector": {
"ne_status": {
"$eq": "Q"
},
"type": {
"$eq": "weak"
},
"parentId": {
"$eq": ""
}
},
"fields": [
"_id",
"_rev"
]
}