Bagaimana menemukan duplikat di mongodb
Anda dapat menggunakan sintaks berikut untuk menemukan dokumen dengan nilai duplikat di MongoDB:
db.collection.aggregate([ {" $group ": { "_id": " $field1 ", "count": { " $sum ": 1 } } }, {" $match ": {"_id" :{ " $ne " : null } , "count" : {" $gt ": 1} } }, {" $project ": {"name": " $_id ", "_id": 0} } ])
Inilah yang dilakukan sintaksis ini:
- Kelompokkan semua dokumen dengan nilai yang sama di kolom 1
- Cocokkan kelompok yang memiliki lebih dari satu dokumen
- Proyeksikan semua grup yang memiliki lebih dari satu dokumen
Kueri khusus ini mencari nilai duplikat di kolom field1 . Cukup edit nilai ini untuk mengubah bidang pencarian.
Contoh berikut memperlihatkan cara menggunakan sintaks ini dengan tim koleksi dengan dokumen berikut:
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Rockets ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
Contoh: Temukan dokumen dengan nilai duplikat
Kita dapat menggunakan kode berikut untuk menemukan semua nilai duplikat di kolom “tim”:
db.teams.aggregate([ {" $group ": { "_id": " $team ", "count": { " $sum ": 1 } } }, {" $match ": {"_id" :{ " $ne " : null } , "count" : {" $gt ": 1} } }, {" $project ": {"name": " $_id ", "_id": 0} } ])
Kueri ini mengembalikan hasil berikut:
{ name: 'Rockets' } { name: 'Mavs' }
Ini memberitahu kita bahwa nilai “Rockets” dan “Mavs” muncul beberapa kali di bidang “tim”.
Perhatikan bahwa kita cukup mengganti $team dengan $position untuk mencari nilai duplikat di bidang “posisi”:
db.teams.aggregate([ {" $group ": { "_id": " $position ", "count": { " $sum ": 1 } } }, {" $match ": {"_id" :{ " $ne " : null } , "count" : {" $gt ": 1} } }, {" $project ": {"name": " $_id ", "_id": 0} } ])
Kueri ini mengembalikan hasil berikut:
{ name: 'Guard' }
Ini memberitahu kita bahwa “Penjaga” muncul beberapa kali di bidang “posisi”.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:
MongoDB: Cara menambahkan bidang baru ke koleksi
MongoDB: Cara mengelompokkan dan menghitung
MongoDB: Cara mengelompokkan berdasarkan beberapa bidang