【发布时间】:2011-05-27 12:30:33
【问题描述】:
在 MongoDB 中,如果我想表达 A AND (B OR C),我可以很容易做到:
db.demo.find( { a: 1, $or: [ {b:1}, {c:1} ] });
但如果我想要 (A AND B) OR C -- 它似乎不起作用。如果我尝试:
db.demo.find( { $or: [ {a:1,b:1}, {c:1} ] });
上面是把它当作A或B或C,这与
db.demo.find( { $or: [ {a:1}, {b:1}, {c:1} ] });
此时,我不想使用 Javascript 表达式 $where 来完成此操作(但别无选择,如果没有其他方法) - 原因是,我正在创建一个通用过滤规则,这是直接转换为 MongoDB 查询。
有什么帮助吗?
【问题讨论】:
-
糟糕!不,问题不正确。查询正常工作。我在下面的答案中发布了详细信息。
标签: javascript mongodb