Wenn Sie viele Daten haben, würde ich bei demselben Ansatz bleiben und einen aggregierten Zähler erhöhen, wenn eine neue Nachricht für einen Benutzer hinzugefügt wird, indem ich eine Sammlung wie die folgende verwende:
zählt
{
userid: 123,
messages: 10
}
Leider (oder zum Glück?) gibt es in MongoDB keine Trigger, also würden Sie den Zähler aus Ihrer Anwendungslogik erhöhen:
db.counts.update( { userid: 123 }, { $inc: { messages: 1 } } )
Dadurch erhalten Sie die beste Leistung, und Sie würden wahrscheinlich auch einen Index auf die userid
setzen Feld für schnelle Suchen:
db.counts.ensureIndex( { userid: 1 } )