1. ホーム
  2. mongodb

[解決済み] MongoDB の重複レコードを検索する

2022-02-08 04:30:04

質問

mongoコレクションで重複するフィールドを見つけるにはどうすればよいですか。

name"フィールドが重複していないか確認したいのですが。

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

ありがとうございました。

解決方法は?

の集計を使用します。 name を取得し namecount > 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"以外のカラム名で使用する場合は、".を変更します。 名前 を "に変更します。 列名 "