混合 $in 和 $or mongo 搜索操作
mixing $in and $or mongo search operations
各位,
我正在尝试混合使用 $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
错误是因为 $or
没有作用于其父级的字段,而是期望整个 "query document" 作为其子级:
{
"_type": {
"$in": [
"A"
]
},
"$or": [
{ "tags": { "$all": [ "foo","bar"] } },
{ "tags": { "$nin": [ "baz" ] } }
]
}
各位,
我正在尝试混合使用 $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
错误是因为 $or
没有作用于其父级的字段,而是期望整个 "query document" 作为其子级:
{
"_type": {
"$in": [
"A"
]
},
"$or": [
{ "tags": { "$all": [ "foo","bar"] } },
{ "tags": { "$nin": [ "baz" ] } }
]
}