我的查询现在是
events = mdb.events.aggregate([
{"$match": {"type": "ClientService"}},
{"$project": {"value": 1, "day": {"$dayOfYear": "$timestamp"}, "count": {"$add": [1]}}},
{"$group": {"_id": {"day": "$day", "value": "$value"}, "count": {"$sum": "$count"}}},
{"$sort": {"day": -1, "value": 1}}
])
如何修改此查询以使用$ match query中的“$ and”语句通过多个参数查找文档?
答案 0 :(得分:0)
来自MongoDB文档。
MongoDB在指定逗号分隔的表达式列表时提供隐式AND操作。当必须在多个表达式中指定相同的字段或运算符时,必须使用带有$和运算符的显式AND。
无论如何,' $和'的语法在聚合中保持不变 即。
{ $and: [ { <expression1> }, { <expression2> } , ... , { <expressionN> } ] }
所以你的查询看起来像
events = mdb.events.aggregate([
{"$match": {"$and" : [{"type": "ClientService"},{"some_key":"value"}]}},
{"$project": {"value": 1, "day": {"$dayOfYear": "$timestamp"}, "count": {"$add": [1]}}},
{"$group": {"_id": {"day": "$day", "value": "$value"}, "count": {"$sum": "$count"}}},
{"$sort": {"day": -1, "value": 1}}
])
$or
,$not
,$ne
等同样如此。