MongoDBで重複したデータベースを見つける方法は?

MongoDBで重複データを検出するには、アグリゲーションパイプライン操作を使用します。

一つの方法は次のとおりです。

  1. $group演算子を使い、データを集約パイプラインでグループ化し、重複するデータを1つのグループにまとめる。 フィールドを基準としてグループ化でき、例としては $group: { _id: “$field_name” } があり、field_nameは重複が確認されるフィールド名。
  2. _idがnullでない場合、countが1より大きいグループを$match演算子で抽出する。countはグループのドキュメントの数を示します。
  3. $project操作子を使用して必要なフィールドを選択し、名前を変更できます。$project: { field_name: “$_id” }という形式を使用できます。ここでfield_nameは出力結果におけるフィールド名です。

以下が完全なサンプルコードです。

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

collectionという部分には、検索したいコレクション名、field_nameという部分には、重複がないか確認したいフィールド名を代入してください。

前述のコードを実行すると、重複データを含むドキュメントが返されます。

bannerAds