在 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。
关于Mongodb $或评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176956/