Nyní bych mohl uvažovat dvěma způsoby:
1) Použití agregačního rámce:
db.log.aggregate([ { $unwind : "$entries" }, { $group : { _id : "$_id", entries : {$sum:1} } } ]);
2) Nebo můžete do dokumentu přidat pole, které obsahuje počet položek. Takže pokaždé, když vložíte novou hodnotu do pole položek, musíte zvýšit čítač. Aktualizace bude vypadat takto:
db.log.update({ _id : 123 }, { $push : { entries : 'value' }, $inc : { entriesCount : 1 } })
Je zřejmé, že zde máte kompromis:agregační rámec je pro tuto jednoduchou operaci příliš drahý. Ale přidáním pole do dokumentu by každá aktualizace měla zvýšit počítadlo.
IMHO, počítadlo vypadá rozumněji, i když to vypadá jako řešení.