Menghitung sepertinya seperti salah satu hal yang seharusnya murah, tetapi seringkali tidak. Karena mongo tidak mempertahankan hitungan jumlah dokumen yang sesuai dengan kriteria tertentu dalam indeks b-tree-nya, mongo perlu memindai dokumen penghitungan indeks saat berjalan. Itu berarti menghitung 100x dokumen akan memakan waktu 100x, dan kira-kira seperti ini yang kita lihat di sini -- 0.018 * 100 = 1.8s
.
Untuk mempercepatnya, Anda memiliki beberapa opsi:
- Jumlah aktif kira-kira
estimatedDocumentCount() - db.users.countDocuments({status: 'inactive'})
. Apakah ini cukup akurat untuk kasus penggunaan Anda? - Atau, Anda dapat mempertahankan
counts
dokumen dalam koleksi terpisah yang Anda sinkronkan dengan jumlah dokumen aktif/tidak aktif yang Anda miliki.