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

Brug $lookup i en række objekter

Du kan gøre det med noget som dette i MongoDB 3.2, forudsat at samlingen, der har detaljerne, er video.details og det felt, du tilmelder dig til venstre, er _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"
            }
         }
      }
   }
]

Så dybest set laver du dit opslag, men senere i et $gruppestadie bygger du outputtet, som du kan lide det. du har muligvis ikke brug for det første $unwind-trin, hvis du bruger MongoDB 3.3.4 eller nyere (tidligere var $opslag på arrays ikke tilladt).




  1. Sådan opretter du en konfigurationsfil til MongoDB

  2. Reager POST-anmodninger med Express/Node og MongoDB

  3. mongoose - vælg specifikke felter i Model.create

  4. Er der nogen mulighed for at begrænse mongodb-hukommelsesbrug?