Мне нужно выполнить такой запрос в MongoDB:
SELECT kills / deaths AS kd FROM stats
Мои документы выглядят так:
{
"_id": ObjectId("5b6e8c66568a4e65461a5893"),
"uuid": "889fd936-1a1e-31ac-b1fc-1ca34576301d",
"coins": 146,
"onlinetime": 988,
"logins": 540,
"messages": 31,
"rounds": 0,
"lobby": {
"balloons": {
"skeleton": true,
"creeper": true,
"enderdragon": true,
"wither": true
},
"jumpandrun": true
},
"stickfight": {
"inventory": {
"stick": 0,
"blocks": 1
},
"rounds": 26,
"kills": 219,
"deaths": 156
}
В некоторых документах нет stickfight
внутри. Я хочу разделить kills
на deaths
и проверить, больше ли количество раундов, чем 15.
Мне нужны 5 лучших игроков.
https://pastebin.com/AqscMYSp
Я пробовал это:
$agg = $coll->aggregate([
['$project' => [
'id' => '$_id'
]],
['$unwind' => '$stickfight'],
['$group' => [
"_id" => '$id',
"kills" => '$stickfight.kills',
'deaths' => '$stickfight.deaths'
]]
])->toArray();
Спасибо за помощь!