sql >> Database >  >> NoSQL >> MongoDB

Gebruik $lookup in een array van objecten

Je kunt het met zoiets doen in MongoDB 3.2, ervan uitgaande dat de verzameling met de details video.details is en het veld waar u zich bij blijft voegen is _id :

[  
   {  
      $unwind:"$videos"
   },
   {  
      $lookup:{  
         from:"video.details",
         localField:"videos.videoId",
         foreignField:"_id",
         as:"details"
      }
   },
   {  
      $group:{  
         _id:"$_id",
         name:{  
            $first:"$name"
         },
         videos:{  
            $push:{  
               videoId:"$videos.videoId",
               videoDetails:"$details"
            }
         }
      }
   }
]

Dus eigenlijk doe je je zoekopdracht, maar later in een $ groepsfase bouw je de uitvoer zoals jij dat wilt. je hebt misschien de eerste $unwind-fase niet nodig als je MongoDB 3.3.4 of hoger gebruikt (voorheen was $ opzoeken op arrays niet toegestaan).




  1. Waarschuwingen configureren op MongoDB-statistieken

  2. Hoe kan ik met MongoDB een subdocument van een subarray bijwerken wanneer de elementpositie onbekend is?

  3. Null-waarde opvragen in MongoDB

  4. Automatisch aanvullen implementeren op MongoDB