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

beregne gennemsnit i Mongoose

Du kan ikke henvise til $Comments.Rating fordi kommentarerne er i en separat samling, og produktdokumenterne indeholder blot en henvisning til dem.

Så i stedet skal du efterligne en joinforbindelse ved at bruge et par trin:

// 1. Get the product's Comments array of comment ids.
Product.findOne(id, 'Comments', function(err, product) {
    // 2. Filter Comments to just those in product.Comments and average the Rating
    Comments.aggregate([
        {$match: {_id: {$in: product.Comments}}},
        {$group: {_id: product._id, average: {$avg: '$Rating'}}}
    ], function (err, result) {...});
});



  1. Tilslutning af MongoDB fra mobil- eller browserbaseret applikation

  2. Hvordan får jeg en liste over kun ObjectId'erne, der bruger pymongo?

  3. System.TimeoutException:Der opstod en timeout efter 30.000 ms valg af en server ved hjælp af CompositeServerSelector

  4. MongoDB:Skal du forhåndstildele et dokument, hvis du bruger $addToSet eller $push?