Mongodb $或评估

标签 mongodb

在 JavaScript 中

const a = func1() || func2()

如果func1()返回true,则跳过func2()(不会被调用)

这在 mongodb $ 中也适用吗?

db.collection('something').find( { $or: [ { 数量: { $lt: 20 } }, { 价格: { $gt: 100 } } ] } )

如果数量<20,mongodb会停止评估价格吗?

最佳答案

$or 接受一个列表,其中的顺序很重要。

这称为“短路”评估,如果第一个条件不匹配,则测试下一个条件,依此类推。

查询:

db.somecollection.find( { $or: [ { quantity: { $lt: 20 } }, { price: { $gt: 100 } } ] } )

此查询将选择 somecollection 中数量字段值小于 20 的所有文档。

如果不满足此条件,则测试下一个条件,即价格字段值是否大于 100。

Source

关于Mongodb $或评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176956/

相关文章:

javascript - Mongoose 中的同步和异步与回调

mongodb - mongod.service 启动失败 : Unit mongod. 找不到服务

node.js - mongoose 聚合使用 $exists in $cond

node.js - MongoDB 发现返回零结果

node.js - 我的应用程序的分布式数据库

java - Mongodb日期保存问题

ruby-on-rails - 无架构数据库 : Indexing dynamically-typed things by their properties?

java - 在 Spring 中解析 MongoRepository 的变量名称

c++ - 通过 C++ 驱动程序从 MongoDB 集合中批量删除

mongodb - 我的 meteor 应用程序需要 MONGO_OPLOG_URL 和 MONGO_URL