mongoDB コレクションに次のドキュメントがあります。
{
"_id" : ObjectId("51d90c3746503d6ab5933b88"),
"scorearray" : [
{
"score" : 0.0
},
{
"score" : 7.0
}
],
"player" : "Arod"
}
/* 1 */
{
"_id" : ObjectId("51d90c0d46503d6ab5933b86"),
"scorearray" : [
{
"score" : 2.0
},
{
"score" : 1.0
},
{
"score" : 5.0
}],
"player" : "Martini"
}
各プレーヤーの最大スコアを取得しようとしており、次のようなクエリがありますが、1 人のプレーヤー、つまり 7.0 の Arod のみが返されます。クエリ結果には Arod 7.0 と Martini 5.0 の両方が必要です。
以下のクエリを変更する方法を教えてください。どんなガイダンスでも大歓迎です。
db.playerscorecollection.aggregate([
{$project:{_id:0,player:1, "scorearray.score":1}},
{$unwind:"$scorearray"},
{$sort:{"scorearray.score":-1}},
{$limit:1}
]);