0

mongodb に通知システムを実装しています。基本的には、通知項目を作成し、ユーザーをサブスクライブします。その後、通知アイテムでアクションが発生した場合は、それらをアクション ドキュメントに記録するだけで、アクション コレクションに関するユーザーの通知を照会できます。これまでのところ、それはすべて良いです。

ここで、アクションをタイプと通知項目でグループ化し、結果を最新のアクション時間 (フォロー、コメント、いいね) で並べ替えたいだけです。だから私は「ジョン、リサ、そしてあなたのブラブラのような他の3人」のような要約を作ることができます

それを成功させるために、mongodb に mapreduce を実装しました。それも機能しています。しかし問題は、正しく見えないことです。

mapreduce は出力としてコレクションを生成するためです。この場合;

ユーザー 1 のログイン、mapreduce の実行による通知コレクションの生成、次にユーザー 2 のログイン、mapreduce の実行による通知コレクションの生成 (別のユーザー用に既に作成されている)。

複数のユーザーが同時に mapreduce をトリガーするとどうなるか興味がありますか? (これはソーシャル ネットワークであり、かなり可能性があります)

ユーザーごとに独自の通知コレクションを作成できるのではないかと考えましたnotification_$userid.. 1M ユーザーの場合、1M コレクションは正しく聞こえませんか?

ちなみにMongoDBのグルーピングから始めましたが、結果セットをソートしたいのでmapreduceに変更しました。

ありがとうございました。

4

0 に答える 0