Sekarang, saya bisa berpikir dalam dua pendekatan:
1) Menggunakan kerangka kerja agregasi:
db.log.aggregate([ { $unwind : "$entries" }, { $group : { _id : "$_id", entries : {$sum:1} } } ]);
2) Atau Anda dapat menambahkan bidang ke dokumen yang menyimpan jumlah entri. Jadi, setiap kali Anda memasukkan nilai baru ke array entri, Anda harus menambah penghitung. Updatenya akan seperti ini:
db.log.update({ _id : 123 }, { $push : { entries : 'value' }, $inc : { entriesCount : 1 } })
Jelas, Anda memiliki trade-off di sini:kerangka kerja agregasi terlalu mahal untuk operasi sederhana ini. Tetapi menambahkan bidang ke dokumen, setiap pembaruan harus menambah penghitung.
IMHO, penghitungnya terlihat lebih masuk akal, meskipun terlihat solusi.