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

Bagaimana Anda menghitung jumlah dokumen dalam koleksi MongoDB di dalam Node?

Untuk mendapatkan jumlah dokumen dalam koleksi, gunakan db.collection.find({}).count() .

Namun, apa yang Anda coba lakukan tidak akan berhasil. Ketika Anda memiliki banyak akses paralel ke database, maka ada kemungkinan bahwa beberapa utas melakukan ini pada saat yang sama, menerima jumlah yang sama dan dengan demikian akan memasukkan dokumen dengan id yang sama. Menurut teorema CAP , database terdistribusi seperti MongoDB tidak dapat menyediakan konsistensi seperti ini.

Yang harus Anda lakukan adalah mengandalkan MongoDB ObjectId sebagai pengidentifikasi unik untuk dokumen. MongoDB menghasilkan ini secara otomatis untuk setiap dokumen ketika Anda tidak memberikan nilai sendiri untuk _id . ObjectId unik secara global (cukup unik untuk tujuan praktis apa pun), jadi Anda tidak akan mendapatkan tabrakan apa pun. Mereka juga dimulai dengan stempel waktu, jadi saat Anda memesan dengan _id Anda mendapatkan urutan kronologis yang kasar (seperti yang dinyatakan sebelumnya, ketat urutan kronologis tidak mungkin disediakan oleh sistem terdistribusi).

Sebagai aturan praktis, kapan pun Anda akan menggunakan AUTO_INCREMENT di SQL, Anda mungkin akan menggunakan ObjectId di MongodDB.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tidak dapat membuat namespace dalam transaksi multi-dokumen (MongoDB 4.0, Spring Data 2.1.0, Spring Boot)

  2. Kembalikan seluruh dokumen dari agregasi

  3. koneksi mongodb kehabisan waktu kesalahan

  4. Lihat kemajuan pekerjaan agregasi mongodb yang sudah berjalan lama

  5. Driver Java MongoDB:autoConnectRetry