大量のデータがある場合は、同じアプローチを使用し、次のようなコレクションを使用して、ユーザーに新しいメッセージが追加されるたびに集計カウンターをインクリメントします。
カウント
{
userid: 123,
messages: 10
}
残念ながら(または幸いなことに?)MongoDBにはトリガーがないため、アプリケーションロジックからカウンターをインクリメントします。
db.counts.update( { userid: 123 }, { $inc: { messages: 1 } } )
これにより最高のパフォーマンスが得られ、おそらくuserid
にもインデックスを付けることができます。 高速ルックアップのフィールド:
db.counts.ensureIndex( { userid: 1 } )