У меня есть следующая структура для моей коллекции player_statistics
.
{
"_id" : ObjectId("5e712989edbdba067fed5f2e"),
"surname" : "player_A",
"team" : "team_A",
"position" : "forward",
"minutes" : 46,
"shots" : 2,
"passes" : 16,
"tackles" : 0,
"saves" : 0
}
Свойство position
имеет несколько значений, таких как forward
, midfield
et c. Мое требование состоит в том, чтобы получить средние проходы, основанные на позиции , используя один запрос .
db.player_statistics.aggregate([
{ $match: { position: 'forward'} },
{ $group: {"_id": null , pop :{$avg:'$passes'}} }
]).pretty();
db.player_statistics.aggregate([
{ $match: { position: 'midfielder'} },
{ $group: {"_id": null , pop2 :{$avg:'$passes'}} } ,
]).pretty();
Я написал следующие два на основе агрегата mon go. Есть ли способ объединить два в одно, используя что-то похожее на UNION
в MySQL. Или есть лучший способ добиться этого?