我在文档中找不到对此概念的引用,所以我想我在这里问。我们正在使用一些布尔查询逻辑,并且我一直致力于使用以下内容构建$match
阶段:
{ '$match':
{ '$or':
[ { depth: { '$or': [ { '$gt': 1 }, { '$lte': 36 }, { '$ne': 15 } ] } },
{ height: { '$and': [ { '$gt': 1 }, { '$lte': 36 }, { '$ne': 15 } ] } } ] } },
任何人都可以确认是否支持这种类型的嵌套布尔逻辑?
在我的测试中,它不会返回任何结果,但它也不会引发任何异常。
谢谢!
答案 0 :(得分:2)
正确的语法应该是
{$match: {
$and: [
{depth: {$gt: 1}},
{depth: {$lte: 36}},
{depth: {$ne: 15}},
{height: {$ne: 15}},
.... etc ....
]
}}
虽然这种查询有一种更简单的方法..
{$match: {
depth: {$gt: 1, $lte: 36, $ne: 15},
height: {$gt: 1, $lte: 36, $ne: 15}
}}
<强>更新强>
这是您的更新后查询
{$match: {
$or: [
{depth: {$gt: 1}},
{depth: {$lte: 36}},
{depth: {$ne: 15}},
{height: {$gt: 1, $lte: 36, $ne: 15}}
]
}}