感谢您阅读我的问题。
请执行任何错误,我正努力提高英语水平。
我有>我 MongoDB 中的4000 记录,这是我的记录之一:
{
"_id" : ObjectId("5763821ffefb61074041477e"),
"sessionId" : "5138A3B4A5966CE4B2203B8BFC90055F",
"objects" : [
{
"id" : "334449673730",
"point" : 0.5
},
{
"id" : "790373008255",
"point" : 0.5
},
{
"id" : "790373008255",
"point" : 1.0
},
{
"id" : "572453522243",
"point" : 0.5
},
{
"id" : "572453522243",
"point" : 1.0
}
]
}
我的结果,我想删除重复的id
,但保留point
:1.0
结果:
{
"_id" : ObjectId("5763821ffefb61074041477e"),
"sessionId" : "5138A3B4A5966CE4B2203B8BFC90055F",
"objects" : [
{
"id" : "334449673730",
"point" : 0.5
},
{
"id" : "790373008255",
"point" : 1.0
},
{
"id" : "572453522243",
"point" : 1.0
}
]
}
我关注此帖:How to remove duplicates with a certain condition in mongodb? 它与我的问题相似,但我不知道为什么结果不是我想要的:
pipeline = ([
{
"$group": {
"_id": "$id",
"count": { "$sum": 1 },
#"uniqueIds": { "$addToSet": "$_id" },
"Point": { "$max": "$point" }
}
},
{
"$match": {
"count": { "$gte": 1 }
}
}
])
for test_item in collection_forTest.aggregate(pipeline):
print(test_item)
结果:
{'Point':无,'count':1,'_ id':无}
我可以使用python代码,加载所有记录,检查列表中相同的id
,比较point = 1
是否与point != 1
删除相同的记录,但我认为它比慢聚合
你能帮我解决所有问题> 4000条记录? 非常感谢!