Mongodb $ Multiply возвращает нулевое значение - PullRequest
1 голос
/ 03 апреля 2020

Я новичок в пн go, и я хочу получить общую сумму заказа, я использую десятичную для цены и int для количества, он все время возвращает ноль, не могли бы вы помочь мне с этим заранее спасибо

db.order.aggregate([
{
 $project:{
        total:{
            $multiply:['$qty','$price'] // this returns null, price in decimal, and qty is int
                }}}])

1 Ответ

1 голос
/ 03 апреля 2020

Поскольку book - это массив, вам нужно использовать $ map , чтобы запустить $multiply для каждого элемента. Вы также можете использовать $ addFields и $ mergeObjects для хранения входных данных:

db.collection.aggregate([
    {
        $addFields: {
            book: {
                $map: {
                    input: "$book",
                    in: {
                        $mergeObjects: [
                            "$$this",
                            { total: { $multiply: [ "$$this.qty", "$$this.price" ] } }
                        ]
                    }
                }
            }
        }
    }
])

Пн go Детская площадка

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