Jeśli masz dużo danych, trzymam się tego samego podejścia i zwiększam licznik zagregowany za każdym razem, gdy nowa wiadomość jest dodawana dla użytkownika, używając kolekcji podobnej do tego:
liczy się
{
userid: 123,
messages: 10
}
Niestety (lub na szczęście?) w MongoDB nie ma wyzwalaczy, więc możesz zwiększyć licznik z logiki aplikacji:
db.counts.update( { userid: 123 }, { $inc: { messages: 1 } } )
Zapewni to najlepszą wydajność i prawdopodobnie umieścisz również indeks w userid
pole do szybkiego wyszukiwania:
db.counts.ensureIndex( { userid: 1 } )