「フィード」コレクションがあり、各フィードにはコメントがあります。そのため、誰かがフィードにコメントすると、Mongo のマルチキー フィールドである「購読者」に追加されます。
feeds: {
_id: ...,
text: "Text",
comments: [{by: "A", text: "asd"},{by: "B", text: "sdf"}],
subscribers: ["A","B"]
}
次に、ユーザー A の新しいコメントを含むすべてのフィードを取得する必要がある場合、{subscribers: "A"} でフィードを要求します。
通常は 2 ~ 5 件のコメントがありますが、(ホット フィードでは) 100 件を超えるコメントと 100 件を超える購読者がいる場合があります。
キーが多すぎるマルチキー フィールドを使用することはお勧めできません。では、どれくらいが多すぎますか?
マルチキーを使用するか、各ユーザーに直接コメントを送信する方がよいかを決定する必要があるため、質問します。この場合、各サブスクライバーのフィードをコピーする必要があります-コレクションは非常に急速に成長します-これも良くないと思います: 1000 人のユーザー、それぞれに 10 人のユーザーが続き、それぞれが 1 日 10 回のアクションを行う = 10 ごとに 1 000 000 レコード日々!