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

perbedaan antara agregat ($cocok) dan temukan, di MongoDB?

Mengapa output agregat tidak kembali sebagai DBcursor atau List?

Kerangka kerja agregasi dibuat untuk memecahkan masalah mudah yang membutuhkan pengurangan peta.

Kerangka kerja ini biasanya digunakan untuk menghitung data yang membutuhkan db penuh sebagai input dan sedikit dokumen sebagai output.

Apa perbedaan antara operator $match yang digunakan di dalam fungsi agregat dan find biasa di Mongodb?

Salah satu perbedaan, seperti yang Anda nyatakan, adalah tipe pengembalian. Temukan hasil keluaran operasi sebagai DBCursor .

Perbedaan lainnya:

  • Hasil agregasi harus kurang dari 16 MB. Jika Anda menggunakan pecahan, data lengkap harus dikumpulkan dalam satu titik setelah $group pertama atau $sort .
  • $match satu-satunya tujuan adalah untuk meningkatkan kekuatan agregasi, tetapi memiliki beberapa kegunaan lain, seperti meningkatkan kinerja agregasi.

dan juga mengapa kami tidak dapat menghitung jumlah dokumen yang dikembalikan?

Kamu bisa. Hitung saja jumlah elemen dalam larik yang dihasilkan atau tambahkan perintah berikut di akhir pipa:

{$group: {_id: null, count: {$sum: 1}}}

Mengapa fungsi find tidak mengizinkan penggantian nama bidang seperti fungsi agregat?

MongoDB masih muda dan fitur-fiturnya masih akan datang. Mungkin di versi mendatang kita akan bisa melakukan itu. Mengganti nama bidang lebih penting dalam agregasi daripada di temukan .

EDIT (26/02/2014):

Operasi agregasi MongoDB 2.6 akan mengembalikan kursor.

EDIT (2014/04/09):

MongoDB 2.6 dirilis dengan perubahan agregasi yang diprediksi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Luwak, temukan, kembalikan properti tertentu

  2. Pilih bidang bersarang di mongo db

  3. C# - MongoDB - Perbarui elemen di dalam Dokumen Bersarang

  4. Urutan tanggapan ke MongoDB $ dalam kueri?

  5. Node.js - tunggu beberapa panggilan asinkron