MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Grupo de agregação de pedidos/vendas do MongoDB Soma por mês total + campo de contagem


Você pode usar $cond como abaixo:
Order.aggregate([
    {
        $group: {
            _id: {
                month: { $month: "$date" },
                year: { $year: "$date" } 
            },
            total: { $sum: "$total" },
            countByApp: { $sum: { $cond: [ {$eq: [ "$source", "APP" ]} , 1, 0] } },
            countByWeb: { $sum: { $cond: [ {$eq: [ "$source", "WEB" ]} , 1, 0] } },
        }
    }
])

Mongo Playground