Nilai yang berbeda adalah nilai-nilai dengan duplikat berlebihan dihapus. Dengan kata lain, nilai yang berbeda adalah nilai yang unik.
Di MongoDB ada beberapa cara untuk mengembalikan nilai yang berbeda dalam kueri. Artikel ini menyajikan 3 cara untuk mengembalikan nilai yang berbeda di shell mongo.
Contoh Data
Contoh di halaman ini menggunakan koleksi berikut yang disebut pets
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 } { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 } { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
Yang distinct()
Metode
Di MongoDB, db.collection.distinct()
metode menemukan nilai yang berbeda untuk bidang tertentu di satu koleksi atau tampilan dan mengembalikan hasilnya dalam larik.
Contoh:
db.pets.distinct( "type" )
Hasil:
[ "Bat", "Cat", "Dog" ]
Ketiga nilai ini adalah nilai yang berbeda untuk type
pada dokumen di atas.
pets
bagian hanya menamai koleksi yang mengembalikan nilai yang berbeda.
db.collection.distinct()
metode adalah metode pembungkus shell untuk distinct
perintah (di bawah).
Yang distinct
Perintah
Di MongoDB, distinct
perintah agregasi menemukan nilai yang berbeda untuk bidang tertentu di satu koleksi.
Ini mengembalikan dokumen yang berisi larik nilai yang berbeda, serta dokumen yang disematkan dengan statistik kueri dan rencana kueri.
db.runCommand ( { distinct: "pets", key: "type" } )
Hasil:
{ "values" : [ "Bat", "Cat", "Dog" ], "ok" : 1 }
Kita dapat melihat bahwa nilai berbeda yang sama dikembalikan, kecuali kali ini nilai tersebut berada di dokumen yang juga berisi info lainnya.
$group
Operator Agregasi
Tergantung pada kebutuhan Anda, Anda juga dapat menggunakan $group
operator agregasi untuk mengembalikan nilai yang berbeda.
Contoh:
db.pets.aggregate( [ { $group : { _id : "$type" } } ] )
Hasil:
{ "_id" : "Cat" } { "_id" : "Bat" } { "_id" : "Dog" }
Dalam hal ini nilai yang berbeda dikembalikan dalam dokumen terpisah.
Pendekatan ini dapat berguna jika Anda mengharapkan hasil yang besar. Jika hasil Anda lebih besar dari ukuran BSON maksimum (16 megabyte pada saat penulisan), Anda mungkin perlu menggunakan pendekatan ini.