ゲームの結果を MongoDB に保存しており、各プレイヤーの 3 つの最高の結果の合計を計算したいと考えています。
集計フレームワークを使用すると、終了したゲームのデータベースから次の中間パイプライン結果を構築できます (以下の各プレーヤーは、与えられたスコアで 5 つのゲームを終了しました)。
{
"_id" : "Player1",
"points" : [ 324, 300, 287, 287, 227]
},
{
"_id" : "Player2",
"points" : [ 324, 324, 300, 287, 123]
}
次に、各プレーヤーの 3 つの最適な値を合計する必要があります。配列を並べ替えることができたので、ここでは各配列の最初の 3 つの要素のみを取得して、次のパイプライン ステップで配列の合計を作成しても問題ありません。
1 人のプレーヤーの結果のみが必要な場合は、$limit が適切に機能します。$slice も使用してみましたが、集計フレームワークでは機能しないようです。
では、各プレーヤーの 3 つの最高の結果の合計を取得するにはどうすればよいでしょうか?