Десятичное число округления до ближайшего целого числа в структуре агрегации MongoDB - PullRequest
1 голос
/ 04 апреля 2019

Я прошел через сайт ниже, но не могу получить свое решение. Округление до 2 десятичных знаков

У меня есть младшие десятичные дроби, и я хочу округлить до ближайшего целого числа:

34.56 => 35
34.67 => 35
34.12 => 34

Я пробовал это:

            "$subtract": [
                        "$x",
                        { "$mod": ["$x", 1] }
                    ]

То же, что и в Функция Oracle Round

Как мне это сделать в MongoDB?

1 Ответ

2 голосов
/ 04 апреля 2019

MongoDB вводит $ round в 4.2.В качестве обходного пути вы можете использовать $ floor и $ ceil , условно проверяя, не превышает ли доля фракции 0,5

db.collection.aggregate([
    {
        $project: {
            x: { 
                $cond: [ 
                    { $gte: [ { $subtract: [ "$x", { $floor: "$x" } ] }, 0.5 ] }, 
                    { $ceil: "$x" }, 
                    { $floor: "$x" } 
                ] 
            }
        }
    }
])

игровая площадка Монго

...