У меня есть коллекция как таковая:
{_id:ObjectId("5aa59c8411c5de25042a06fd"),
id: Y19rvB489or4mvtxAAAC,
score: 2
}
{_id:ObjectId("5aa59c8b11c5de25042a06fe"),
id: Y19rvB489or4mvtxAAAC,
score: 4
}
{_id:ObjectId("5aa59c8411c5de25042a0hehb"),
id: Y19rvB489or4mvtxAAAD,
score: 3
}
{_id:ObjectId("5aa59c8411c5de25042a06fd"),
id: Y19rvB489or4mvtxAAAD,
score: 2
}
{_id:ObjectId("5aa59c8411c5de25042a0j3bb"),
id: Y19rvB489or4mvtxAAAE,
score: 5
}
{_id:ObjectId("5aa59c8411c5de25042a06fd"),
id: Y19rvB489or4mvtxAAAE,
score: 4
}
{_id:ObjectId("5aa59c8411c5de250wer46fs"),
id: Y19rvB489or4mvtxAAAF,
score: 2
}
{_id:ObjectId("5aa59c8411c5de250423e6fg"),
id: Y19rvB489or4mvtxAAAF,
score: 2
}
{_id:ObjectId("5aa59c8411c5de25042a06fd"),
id: Y19rvB489or4mvtxAAAC,
score: 2
}
{_id:ObjectId("5aa59c8411c5de25042a06fd"),
id: Y19rvB489or4mvtxAAAC,
score: 2
}
{_id:ObjectId("5aa59c8411c5de25042a06fd"),
id: Y19rvB489or4mvtxAAAC,
score: 2
}
Я использую этот запрос, чтобы получить результаты в том порядке, в котором я хочу, т.е. в порядке, указанном в аргументе. Здесь data.enemy_id [1] = Y19rvB489or4mvtxAAAD, data.enemy_id [2] = Y19rvB489or4mvtxAAAC, data.id = Y19rvB489or4mvtxAAAE
var order =[data.enemy_id[1],data.enemy_id[0],data.id];
db.collection('Scores').aggregate([
{$match: {id:{$in:order}}},
{$addFields: {"__order": {$indexOfArray: [order, "$id" ]}}},
{$sort: {"__order": 1}},
{$group: {_id:'$id',score:{$max:'$score'}}},
{$project: {_id:0,score:1}}
]).toArray().then((docs)=>{
var score1 = JSON.stringify(docs,undefined,2);
var score1 = JSON.parse(score1);
console.log(score1);
Я хочу получить результаты следующим образом: т.е. наивысшая оценка id 'Y19rvB489or4mvtxAAAD', 'Y19rvB489or4mvtxAAAC', 'Y19rvB489or4mvtxAAAE' в этом порядке. Но я не могу получить его в желаемом порядке
[{Оценка: 3}, {оценка: 4}, {оценка: 5}]