民间,
我想尝试混合$all
和$nin
mongodb 2.6查询参数。是以这种方式混合$or
与$all
和$nin
?
基本上我们在这里要检索的是具有['foo','bar']
... OR
但没有['baz']
查询:
{
"_type": {
"$in": [
"A"
]
},
"tags": {
"$or": [
{
"$all": [
"foo","bar"
]
},
{
"$nin": [
"baz"
]
}
]
}
}
错误:
HCError: (HCError) error converting cursor to array | caused by: MongoError: Can't canonicalize query: BadValue unknown operator: $or
答案 0 :(得分:2)
错误是因为$or
不会对其父级的字段起作用,而是期望整个“查询文档”成为它的子级:
{
"_type": {
"$in": [
"A"
]
},
"$or": [
{ "tags": { "$all": [ "foo","bar"] } },
{ "tags": { "$nin": [ "baz" ] } }
]
}