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.