$or聚合运算符计算一个或多个表达式的布尔值,只要其中一个表达式为true,则返回true,只有全部为false,才返回false。
语法
{
$or: [ <expression1>, <expression2>, ... ] }
使用
除false外,null、0和undefined都被认为是false,其他值包括非零值和数组都被认为是true,如:
| 例子 | 结果 |
|---|---|
{ $or: [ true, false ] } |
true |
{ $or: [ [ false ], false ] } |
true |
{ $or: [ null, 0, undefined ] } |
false |
{ $or: [ ] } |
false |
错误处理
为了让查询引擎优化查询,$or按下面的方式处理错误:
- 如果提供给
$or的任何表达式在单独计算时会导致错误,则包含该表达式的$or可能会导致错误,但不保证一定会发生错误。 - 即使第一个表达式的计算结果为
true,提供给$or的其他表达式也可能会导致错误。
例如,如果$x为0,以下查询始终会产生错误:
db.example.find( {
$expr: {
$eq: [ {
$divide: [ 1, "$x" ] }, 3 ] }
}

最低0.47元/天 解锁文章
564

被折叠的 条评论
为什么被折叠?



