Ora, potrei pensare in due approcci:
1) Utilizzo del framework di aggregazione:
db.log.aggregate([ { $unwind : "$entries" }, { $group : { _id : "$_id", entries : {$sum:1} } } ]);
2) Oppure puoi aggiungere un campo al documento che contiene il conteggio delle voci. Quindi, ogni volta che si inserisce un nuovo valore nell'array di voci, è necessario incrementare il contatore. L'aggiornamento sarà così:
db.log.update({ _id : 123 }, { $push : { entries : 'value' }, $inc : { entriesCount : 1 } })
Chiaramente, qui hai un compromesso:il framework di aggregazione è troppo costoso per questa semplice operazione. Ma aggiungendo un campo da documentare, ogni aggiornamento dovrebbe incrementare il contatore.
IMHO, il contatore sembra più ragionevole, anche se sembra una soluzione alternativa.