具有$ match的mongodb多逻辑运算符

时间:2015-01-29 03:40:38

标签: mongodb aggregation-framework logical-operators

与此$match相当的mongodb agg sql是什么?

SELECT a FROM DB_A WHERE (t > 21 AND a.t < 60) OR s = 'value'

这个mongodb查询不起作用。有什么帮助吗?

db.collection_a.aggregate([
     { '$match': { '$and': [ {'t': {'$gte': '21'}}, {'t': {'$lte': '60'}}  ] 
    //, '$or': [ {'s': 'value'} ]
            } 
            ,{ '$or': [ {'s': 'value'} ]}
     }

]);

1 个答案:

答案 0 :(得分:3)

你的syntax完全搞砸了。它应该是:

db.a.aggregate([
{$match:{$or:[{"t":{$lte:60,$gte:21}},
              {"s":"value"}]}},
{$project:{"test_type": 1, "distance": 1}}
])