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

Agrégation MongoDB :ajouter un champ à partir d'un document intégré via un chemin de champ dynamique

Utilisez celui-ci :

db.collection.aggregate([
   { $set: { data: { $objectToArray: "$levelNames" } } },
   {
      $set: {
         currentLevelId: {
            $arrayElemAt: ["$data.v", { $indexOfArray: ["$data.k", "$levelName"] }]
         }
      }
   },
   { $unset: "data" }
])

Mongo terrain de jeu