Если у вас много данных, я бы придерживался того же подхода и увеличивал совокупный счетчик всякий раз, когда новое сообщение добавлялось для пользователя, используя коллекцию примерно так:
счетчики
{
userid: 123,
messages: 10
}
К сожалению (или к счастью?) В MongoDB нет триггеров, поэтому вы должны увеличить счетчик из логики вашего приложения:
db.counts.update( { userid: 123 }, { $inc: { messages: 1 } } )
Это даст вам лучшую производительность, и вы, вероятно, также поместите индекс в поле userid
для быстрого поиска:
db.counts.ensureIndex( { userid: 1 } )