MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Query di gruppo Mongoose in node.js / express route

Il group comando non è supportato da Mongoose ed è stato anche deprecato in MongoDB 3.4 poiché la sua funzionalità è meglio servita utilizzando aggregate invece.

Puoi farlo con aggregate usando qualcosa come:

model.Av.aggregate([
    {$match: {dateOfDay: {$gte: new Date('12/01/2014'), $lt:new Date('12/30/2014')}}},
    {$group: {
        _id: '$roomId',
        total: {$sum: '$price'},
        count: {$sum: 1},
        avg: {$avg: '$price'}
    }}
], function (err, result) {...});

Puoi omettere il total e count campi se non ne hai bisogno come $avg operatore ti consente di calcolare direttamente il prezzo medio.