我正在尝试使用 $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
}
最佳答案
$in
运算符基本上是一个 或 条件,但只是以一种特殊的方式。因此,您可以将它用作一种简短形式,以某种类型的对象或正则表达式的形式测试值列表。
另一方面$or
更简洁,所以这将与 $in
查询相同
db.hw1_1.find({ $or: [{ "name": "kamatchi" }, { "name": "kamala"} ] } )
因此 $in
最好针对单个键测试多个值。将 $or
视为单独处理的“查询列表”,并且只需要满足其中一个查询。
关于MongoDB: $or 运算符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27936861/