小编典典

在 MongoDB 中查找重复记录

all

我如何在 mongo 集合中找到重复的字段。

我想检查是否有任何“名称”字段重复。

{
    "name" : "ksqn291",
    "__v" : 0,
    "_id" : ObjectId("540f346c3e7fc1054ffa7086"),
    "channel" : "Sales"
}

非常感谢!


阅读 87

收藏
2022-07-14

共1个答案

小编典典

使用聚合和name获取:name``count > 1

db.collection.aggregate([
    {"$group" : { "_id": "$name", "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, 
    {"$project": {"name" : "$_id", "_id" : 0} }
]);

按重复次数最多到最少对结果进行排序:

db.collection.aggregate([
    {"$group" : { "_id": "$name", "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, 
    {"$sort": {"count" : -1} },
    {"$project": {"name" : "$_id", "_id" : 0} }     
]);

要与“name”以外的其他列名一起使用,请将“ $name ”更改为“ $column_name

2022-07-14