Python 如何使用pymongo筛选mongo集合中的数据

Python 如何使用pymongo筛选mongo集合中的数据,python,mongodb,pymongo,Python,Mongodb,Pymongo,我使用pymongo查询MongoDB并检查特定集合中的重复项。我已经确定了重复项,但我想在脚本中再添加一个过滤器。请在下面找到我的脚本 from pymongo import MongoClient client = MongoClient ('localhost') db = client.test data = db.devices.aggregate([ {'$group': {'_id':{'UserId':"$userId",'DeviceType':"$deviceT

我使用pymongo查询MongoDB并检查特定集合中的重复项。我已经确定了重复项,但我想在脚本中再添加一个过滤器。请在下面找到我的脚本

from pymongo import MongoClient


client = MongoClient ('localhost')
db = client.test

data = db.devices.aggregate([
    {'$group': {'_id':{'UserId':"$userId",'DeviceType':"$deviceType"},
                'count':{"$sum":1}}}, 
    {'$match': {'count' : {"$gt" : 1}}}
])

for _id in data:
    print _id
从上面的脚本中,我只想检查DeviceType=“email”中包含的数据的重复项。我试着在赛后添加一个“和”的条件,但没有效果

你能告诉我如何做到这一点吗


谢谢

我认为这几乎是一个复制品

在这个问题上,我相信您的查询中可能存在语法错误,您将需要类似以下内容:

$match: {
    $and: [
        {'count': {"$gt": 1}},
        {'DeviceType': {"$eq": "email"}}
    ]
}

如果没有帮助,请粘贴您迄今为止尝试过的内容以及任何错误消息输出。

您可以通过在管道中预先设置一个
$match
阶段来高效地完成此操作,以过滤文档,这样您就只在deviceType=“email”:


嗨,非常感谢你的回复。出于某种原因,我尝试过,它不会抛出任何错误,也不会显示任何数据。脚本运行时没有任何输出。请使用问题的链接将示例文档添加到问题中。也许有更好的方法,谢谢你。因为我想按UserId和DeviceType进行分组。我已在组条件中再次添加DeviceType。谢谢:)
data = db.devices.aggregate([
    {'$match': {'deviceType': 'email'}},
    {'$group': {'_id': {'UserId': "$userId", 'DeviceType': "$deviceType"},
                'count': {"$sum": 1}}}, 
    {'$match': {'count': {"$gt": 1}}}
])