Anda dapat dengan mudah mengidentifikasi duplikat dengan menjalankan operasi pipa agregasi berikut:
db.collection.aggregate([
{
"$group": {
"_id": { "foreing": "$foreing", "value": "$value" },
"uniqueIds": { "$addToSet": "$_id" },
"count": { "$sum": 1 }
}
},
{ "$match": { "count": { "$gt": 1 } } }
])
$group
operator pada langkah pertama digunakan untuk mengelompokkan dokumen berdasarkan foreign
dan value
nilai kunci dan kemudian buat larik _id
nilai untuk setiap dokumen yang dikelompokkan sebagai uniqueIds
bidang menggunakan $addToSet
operator. Ini memberi Anda larik nilai ekspresi unik untuk setiap grup. Dapatkan jumlah total dokumen yang dikelompokkan untuk digunakan pada tahap alur selanjutnya dengan $sum
operator.
Pada tahap pipa kedua, gunakan $match
operator untuk memfilter semua dokumen dengan hitungan 1. Dokumen yang difilter mewakili kunci indeks unik.
Dokumen yang tersisa akan menjadi yang ada di koleksi yang memiliki nilai kunci duplikat untuk pasangan foreing
&value
.