MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Champs de somme Mongoose à partir de documents remplis

Vous pouvez essayer l'agrégation ci-dessous dans 3.4.

$lookup pour rechercher les points des pistes terminées suivis de $addFields pour renvoyer un champ de score additionnant les points et $project avec exclusion pour supprimer le champ de données de recherche de la réponse.

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}}
])