私は会話のためのコレクションを持っている:MongoDB - 各会話から最後に1つのメッセージを取得しますか?
{_id: ..., from: userA, to: userB, message: "Hello!", datetime: ...}
私は、ユーザの会話のプレビューを表示したい - 現在のユーザーと他のユーザー間の各会話からの最後のメッセージを。だから、ユーザーが "最後のメッセージ"をクリックすると、彼と彼との間のすべてのメッセージとともに次のページに行きます。
私は地図なし/削減(各会話から1つの最後のメッセージを取得する)ことを?どのように行うのですか
1) "distinct"コマンドを使用しますか? (どう?)
2)最後のメッセージに「last」フラグを設定しますか?私はそれがあまり安全ではないと思う...
3)?
非常に似ます。http:// stackoverflowの。 com/questions/6498506/mongodb-select-the-top-n-rows-from-each-group – Thilo
ありがとうございます。私のシステムでは数千ものメッセージがあるので、私の場合はそれほど効果的ではないと思います。ユーザがメッセージを追加するたびに何千ものドキュメントを更新するのは良いことではないと思います($ inc "すべての関連ドキュメントの「年齢」フィールド)。 – oyatek