Как я могу перевести этот MySql Query в MongoDB? - PullRequest
0 голосов
/ 25 августа 2018

Мне нужно выполнить такой запрос в 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();

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...