MongoDBにおける重複データの削除方法

MongoDBで重複データを削除するには、アグリゲーションパイプラインと$group演算子を使用します。一般的方法は次のとおりです。

  1. 重複するデータを特定するには、アグリゲーションパイプラインと$group演算子を使用する
db.collection.aggregate([
{
$group: {
_id: { field1: "$field1", field2: "$field2" }, // 根据需要设置字段组合
count: { $sum: 1 },
duplicates: { $addToSet: "$_id" }
}
},
{
$match: {
count: { $gt: 1 } // 找到重复的数据
}
}
])
  1. 検索結果をもとに重複データを削除する。
db.collection.aggregate([
{
$group: {
_id: { field1: "$field1", field2: "$field2" }, // 根据需要设置字段组合
count: { $sum: 1 },
duplicates: { $addToSet: "$_id" }
}
},
{
$match: {
count: { $gt: 1 } // 找到重复的数据
}
}
]).forEach(function(doc) {
doc.duplicates.shift(); // 删除第一个重复数据
db.collection.remove({ _id: { $in: doc.duplicates } }); // 删除剩余的重复数据
})

なお、本手法は一例ですので、具体的な状況に応じてフィールド名やコレクション名を修正する必要があります。

bannerAds