MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

3 Cara Mengembalikan Nilai Berbeda di MongoDB

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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring Boot menghubungkan Mysql dan MongoDb

  2. Buat Situs Web Toko Makanan Online Menggunakan Angular, NodeJS, Express, dan MongoDB

  3. MongoDB dot (.) dalam nama kunci

  4. Tambahkan semacam nomor baris ke perintah/pipa agregat mongodb

  5. Jenis tertanam Golang + MongoDB (menyematkan struct di struct lain)