Python 如何使用pymongo筛选mongo集合中的数据
我使用pymongo查询MongoDB并检查特定集合中的重复项。我已经确定了重复项,但我想在脚本中再添加一个过滤器。请在下面找到我的脚本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
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}}}
])