私はソーシャル ネットワークの通知センターを設計しています。1 人のユーザーの通知を、notification_$userid ($userid は動的) という名前の 1 つのコレクションに保存することを考えています。
そして、そのようなデザインの場合、すべてのユーザーの通知を 1 つのコレクションに入れるよりも高速に読み書きできると思います。しかし、それには何か欠点がありますか?または、1dbの収集量に制限はありますか?
これは考え直したほうがいいと思います。その理由は、noSQL データベースがどれほど柔軟であっても、依然として巨大になる可能性があるためです。そしてシャーディング、そして後で成長する場合は、クラスターへの移行などを検討することをお勧めします。このタスクをアプリケーション層で解決することをお勧めします。
これが私がする方法です:
1)ユーザーが来て、他のユーザーに通知する何かを作成します 2)この「ジェスチャー」は通知としてデータベースに保存されませんが、関連するユーザーの「通知」セルに保存されます。3)ユーザーの「通知」セルは配列に似ています-MongoDBでは配列であり、そこにオブジェクトを保存するだけです
このようにして、DB で通知を「パーソナライズ」し、「通知」コレクションの使用を回避しました。行う必要があるのは、その通知を関連ユーザーの「通知」配列にプッシュすることだけです。