Я пытаюсь получить среднее число ключей во вложенном массиве внутри документа, но не знаю, как этого добиться.
Вот как выглядит мой документ:
{
"_id": {
"$oid": "XXXXXXXXXXXXXXXXX"
},
"data": {
"type": "PlayerRoundData",
"playerId": "XXXXXXXXXXXXX",
"groupId": "XXXXXXXXXXXXXX",
"holeScores": [
{
"type": "RoundHoleData",
"points": 2
},
{
"type": "RoundHoleData",
"points": 13
},
{
"type": "RoundHoleData",
"points": 3
},
{
"type": "RoundHoleData",
"points": 1
},
{
"type": "RoundHoleData",
"points": 21
}
]
}
}
Теперь, хитрая часть в том, что мне нужно только среднее значение очков для holeScores [0] всех документов с этим playerid и этим groupid.
На самом деле, лучшим решением было бы собрать все документы с playerid и groupid и создать новый массив со средним значением holeScores [0], holeScores [1], holeScores [2] ... Но если бы я толькоможно получить один ключ массива за раз, что было бы неплохо для: -)
Вот то, что я думаю, но не совсем уверен, как его собрать:
var allScores = dbCollection('scores').aggregate(
{$match: {"data.groupId": groupId, "playerId": playerId}},
{$group: {
_id: playerId,
rounds: { $sum: 1 }
result: { $sum: "$data.scoreTotals.points" }
}}
);
Действительно надеясьза помощь в этом вопросе и заранее спасибо: -)