Как получить общую сумму произведения двух полей во всех коллекциях в мангусте - PullRequest
0 голосов
/ 11 января 2020

У меня есть коллекция инвентаря магазина, которая содержит поля «количество» и «цена» соответственно

{
        "_id": "5dd033a1a9133424a8ae2924",
        "name": "Belt",
        "description": "Auto",
        "price": 7,
        "quantity": 60,
        "supplier": "Thomson",
        "taxable": true,
        "createdAt": "2019-11-16T17:36:33.753Z",
        "updatedAt": "2020-01-11T09:33:27.756Z",
        "__v": 0,
        "orders": []
    },

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

// model

const mongoose= require('mongoose');


//create Schema
const InventorySchema = new mongoose.Schema({
   // _id: mongoose.Schema.Types.ObjectId,
   name : { type: String, required: true },
   description : { type: String, required: true },
   price : { type: Number, required: true },
   quantity : { type: Number, required: true },
   supplier : String,
   taxable : Boolean,
   orders: [{quantity: Number,issuedBy:String,collectedBy:String,department:String}]

},{timestamps:true});

1 Ответ

2 голосов
/ 11 января 2020

Простая $group сцена должна сделать свое дело:

db.collection.aggregate([
    {
        $group: { 
            _id: null,
            total: {$sum: {$multiply: ["$price", "$quantity"]}}
        }
    }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...