【发布时间】:2016-03-14 18:27:16
【问题描述】:
我正在尝试使用将 $match 与 $nin 运算符组合在一起的 MongoDB 查询来查询数据:
coll = mdb.get_collection_by_name('Client')
query = [
{"$group": {"_id": {"Domain": "$Domain"}, "count":{"$sum":1}}},
{"$match": { "UserName": { "$nin": excluded_users}}},
{"$sort": { "count": -1 } }
]
res = list(coll.aggregate(query))
print(res)
看起来,MongoDB 忽略了我的 $match 行并计算包含 excluded users 的记录。我试图搜索类似的示例,但没有找到将 $match 与 $in 或 $nin 组合的查询。支持吗?
难道我做错了什么?将聚合查询与 $nin 或 $in 运算符结合起来的最佳方法是什么?
谢谢
【问题讨论】:
-
在第一阶段 "$group" 之后,文档将只有 _id 和 count 字段,但您希望在 UserName 字段上匹配。您可能需要在 $group 之前移动 $match
标签: mongodb mongodb-query pymongo