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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *