Mongodb 如何删除记录之间的重复记录
我有一个像MongoDB的Mongodb 如何删除记录之间的重复记录,mongodb,Mongodb,我有一个像MongoDB的 {"currency_type":"alchemy", "currency_value": "0.13", "created_on": "1605975144322"} {"currency_type":"alchemy", "currency_value": "0.13"
{"currency_type":"alchemy", "currency_value": "0.13", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.13", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.14", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.14", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.16", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.16", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.16", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.13", "created_on": "1605975144322"}
这就是查询的外观
{"currency_type":"alchemy", "currency_value": "0.13", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.14", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.16", "created_on": "1605975144322"}
{"currency_type":"alchemy", "currency_value": "0.13", "created_on": "1605975144322"}
我尝试过类似的方法,但它会删除所有具有相同值的条目。我只想删除行中重复的条目
DB.objects.aggregate([
{"$match": {"currency_type": "alchemy"}},
{"$group": {
"_id": {
"currency_value": "$currency_value"
},
"created_on": {"$first": "$created_on"},
"data": {"$first": "$$ROOT"},
"count": {"$sum": 1}
}},
{"$sort":{ "created_on" : 1 }}
])
你知道我能往哪个方向走吗?
谢谢 您可以获取要保留或删除的_id的最大值或最小值:
DB.objects.aggregate([
{"$match": {"currency_type": "alchemy"}},
{"$group": {
"_id": {
"currency_value": "$currency_value"
},
"created_on": {"$first": "$created_on"},
"data": {"$first": "$$ROOT"},
"count": {"$sum": 1},
"maxId": {$max:"$_id"}
}},
{"$sort":{ "created_on" : 1 }}
])