0
すべてのユーザーを検索し、各ユーザーの2つのベストスコアのみを選択し、それらのスコアを合計してリーダーボードを作成する必要があります。特定の物件に対して特定の金額を制限した文書を集計します。
私が探しているものと、私がすでに試したものの、成功していないものの例を挙げてみましょう。私はで終わるしたい何
Users Collection:
[
{user: "userA", score:10, game: 12},
{user: "userA", score:20, game: 12},
{user: "userA", score:7, game: 12},
{user: "userB", score:10, game: 12},
{user: "userB", score:3, game: 12},
{user: "userB", score:7, game: 12}
]
これです:
[
{user:"userA", score:30, game:12},
{user:"userB", score:17, game:12}
]
は私が凝集とのmongoの道を進んで試してみたが、残念ながらあなたが$グループステージ上の$ソート、$を制限することはできませんアグリゲーションは2つのベストスコアだけを選択することはできません。
mapReduceやLodashを使っても、単純なfind()クエリの返されたドキュメントを操作することでこれを行う方法はありますか?
また、完成のために私はそこだと思いますソートされたリーダーボードを持つためには、チェーンの最後のsortByでなければなりません。 – MasterBug