Om du har mycket data, skulle jag hålla fast vid samma tillvägagångssätt och öka en sammanlagd räknare när ett nytt meddelande läggs till för en användare, med hjälp av en samling ungefär så här:
räknas
{
userid: 123,
messages: 10
}
Tyvärr (eller lyckligtvis?) finns det inga utlösare i MongoDB, så du skulle öka räknaren från din applikationslogik:
db.counts.update( { userid: 123 }, { $inc: { messages: 1 } } )
Detta ger dig den bästa prestandan, och du skulle förmodligen också lägga ett index på userid
fält för snabba sökningar:
db.counts.ensureIndex( { userid: 1 } )