私はTwitterのようなソーシャルネットワークシステムを設計しており、ユーザーは通知を受け取ります。私はmongodbに通知を保存します。たいていの場合、100ユーザーごとに100の通知を行い、唯一のフィールドはread
です(ユーザーは通知を読んでいます)。だから私はブローMongodbのマルチドキュメントまたは埋め込みドキュメント?
{"userId":1, "content":"some msg", "read":true..}
{"userId":1, "content":"another msg", "read":true..}
またはこのような埋め込まれた文書を使用してマルチドキュメントを使用して天気を疑問に思って:
{"userId":1, "noficications":[{"content":"some msg", "read": true},{"content":"another msg", "read":true}]}
私はエンベデッドアレイを使いたいと思いましたが、パフォーマンスは少し心配でした。これらの記事に記載されているとおり、[1](https://groups.google.com/forum/#!topic/mongodb-user/8R0UwurbbyE)、[2](http://www.askasya.com/post/largeembeddedarrays/ )、パフォーマンスが問題になる可能性があります。配列のサイズが100に制限されている場合はどうなりますか?パフォーマンスに問題はありますか? – Collin
あなたのアイテムの量を制限するのがリクエストごとにクライアントに返る場合、配列がより多くの作業スペースを占有し、それをスライスするためにmongoを取得しなければならないので、単一のドキュメントはより効率的になるでしょう –
しかし、ユーザーの文書数を特定の数に制限することは困難です。その場合、私はスケジューリングプログラムを設定し、すべての文書を反復する必要がありますが、これは非効率的でしょうか? – Collin