与此$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'} ]}
}
]);
答案 0 :(得分:3)
你的syntax完全搞砸了。它应该是:
db.a.aggregate([
{$match:{$or:[{"t":{$lte:60,$gte:21}},
{"s":"value"}]}},
{$project:{"test_type": 1, "distance": 1}}
])