MongoDB: $or 运算符错误

标签 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
}

最佳答案

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

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

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

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

关于MongoDB: $or 运算符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27936861/

相关文章:

mongodb - 查找数组中所有元素都具有特定值的文档

MongoDB $reduce(aggregation) 将嵌套文档在数组中的总和分组并按组计数

node.js - 按 ID 查找并从 MongoDB 数组中删除

java - 使用java使用upsert在mongodb中获取com.mongodb.MongoException$DuplicateKey

java - MongoOperations 添加/删除 json 到 MongoDB

mongodb加入多个集合

java - 无法使用带参数的构造函数 NO_CONSTRUCTOR 实例化 java.util.Set

mongodb - 没有数组的嵌入文档?

ruby-on-rails - 恢复 mongodb 数据库 .bson 和 .json 文件

python - 在 Twisted 中使用 MongoDB。为什么我不应该使用 pymongo?