अब, मैं दो तरीकों से सोच सकता था:
1) एकत्रीकरण ढांचे का उपयोग करना:
db.log.aggregate([ { $unwind : "$entries" }, { $group : { _id : "$_id", entries : {$sum:1} } } ]);
2) या आप उस दस्तावेज़ में एक फ़ील्ड जोड़ सकते हैं जिसमें प्रविष्टियों की संख्या होती है। इसलिए, हर बार जब आप एंट्री ऐरे में एक नया मान पुश करते हैं, तो आपको काउंटर को बढ़ाना होगा। अपडेट इस तरह होगा:
db.log.update({ _id : 123 }, { $push : { entries : 'value' }, $inc : { entriesCount : 1 } })
स्पष्ट रूप से, आपके यहां एक ट्रेड-ऑफ है:इस सरल ऑपरेशन के लिए एकत्रीकरण ढांचा बहुत महंगा है। लेकिन दस्तावेज़ में एक फ़ील्ड जोड़ने पर, प्रत्येक अद्यतन काउंटर को बढ़ाना चाहिए।
IMHO, काउंटर अधिक उचित लगता है, हालांकि यह एक वैकल्पिक हल लगता है।