Teraz mogłem myśleć na dwa sposoby:
1) Korzystanie ze struktury agregacji:
db.log.aggregate([ { $unwind : "$entries" }, { $group : { _id : "$_id", entries : {$sum:1} } } ]);
2) Lub możesz dodać pole do dokumentu, który przechowuje liczbę wpisów. Tak więc za każdym razem, gdy wstawiasz nową wartość do tablicy wpisów, musisz zwiększyć licznik. Aktualizacja będzie wyglądać tak:
db.log.update({ _id : 123 }, { $push : { entries : 'value' }, $inc : { entriesCount : 1 } })
Oczywiście masz tu kompromis:struktura agregacji jest zbyt droga dla tej prostej operacji. Ale dodając pole do dokumentu, każda aktualizacja powinna zwiększać licznik.
IMHO, licznik wygląda bardziej rozsądnie, choć wygląda na obejście.