私は、MongoDB が提供する速度とスケーラビリティにより、MongoDB に特に適していると思われるプロジェクトを開始しています。
私が現在興味を持っているモジュールは、リアルタイム チャットに関するものです。従来の RDBMS でこれを行う場合、次のように分割します。
- チャネル (チャネルには多くのユーザーがいます)
- ユーザー (ユーザーは 1 つのチャネルを持っていますが、多くのメッセージを持っています)
- メッセージ (メッセージにはユーザーがいます)
この使用例の目的として、通常は一度に 5 つのチャネルがアクティブになり、それぞれが 1 秒あたり最大 5 つのメッセージを処理すると想定したいと思います。
高速である必要がある特定のクエリ:
- 新しいメッセージを取得します (ブックマーク、タイム スタンプ、またはインクリメント カウンターに基づいていますか?)
- チャンネルにメッセージを投稿する
- ユーザーがチャネルに投稿できることを確認する
MongoDB のドキュメント制限が 4MB であることを念頭に置いて、スキーマをどのように設計しますか? あなたはどのように見えますか?気をつけるべき落とし穴はありますか?