MongoDB:$或运算符错误

时间:2015-01-14 06:15:50

标签: mongodb mongodb-query

我尝试使用$or运算符,但它会返回错误。

我的代码:

{db.hw1_1.find( { "name": { $in: ["kamatchi","kamala"] } } )

它回答了答案。但是这个查询返回错误。

{db.hw1_1.find( { "name": { $or: ["kamatchi","kamala"] } } )

返回:

error: {
 $err: "can't canonicalize query: BadValue unknown operator: $or   ",
"code" : 1787
}

1 个答案:

答案 0 :(得分:9)

$in运算符基本上是条件,但只是以专门的方式。因此,您可以将其用作简短形式,以将值列表作为某种类型的对象或正则表达式进行测试。

另一方面$or更简洁,所以这与$in查询相同

db.hw1_1.find({ $or: [{ "name": "kamatchi" }, { "name": "kamala"} ] } )

所以$in最好针对单个密钥测试多个值。将$or视为单独处理的“查询列表”,只需要满足其中一个查询。