在MongoDB中刪除重復數據可以使用聚合管道和$group操作符來實現。以下是一種常見的方法:
db.collection.aggregate([
{
$group: {
_id: { field1: "$field1", field2: "$field2" }, // 根據需要設置字段組合
count: { $sum: 1 },
duplicates: { $addToSet: "$_id" }
}
},
{
$match: {
count: { $gt: 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 } }); // 刪除剩余的重復數據
})
請注意,這個方法只是示例,你需要根據你的具體情況修改字段名稱和集合名稱。