0

我有一个类似的 MongoDB

{"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 }}
        ])

我可以朝哪个方向发展任何想法?谢谢!!

4

1 回答 1

0

您可以获取 _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 }}
        ])
于 2020-11-22T03:27:52.667 回答