MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose-Summenfelder aus ausgefüllten Dokumenten

Sie können die folgende Aggregation in 3.4 ausprobieren.

$lookup um die Punkte für abgeschlossene Strecken nachzuschlagen, gefolgt von $addFields um ein Ergebnisfeld zurückzugeben, das die Punkte summiert, und $project mit Ausschluss, um das Suchdatenfeld aus der Antwort zu entfernen.

UserModel.aggregate([
  {"$lookup":{
    "from":"tracks", // name of the foreign collection
    "localField":"completedTracks",
    "foreignField":"_id",
    "as":"lookup-data"
  }},
  {"$addFields":{
    "score":{
      "$sum":"$lookup-data.points"
    }
  }},
  {"$project":{"lookup-data":0}}
])