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

Utiliser $lookup dans un tableau d'objets

Vous pouvez le faire avec quelque chose comme ça dans MongoDB 3.2 en supposant que la collection contenant les détails est video.details et le champ que vous rejoignez à gauche est _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"
            }
         }
      }
   }
]

Donc, en gros, vous effectuez votre recherche, mais plus tard, dans une étape de groupe $, créez la sortie comme vous l'aimez. vous n'aurez peut-être pas besoin de la première étape $unwind si vous utilisez MongoDB 3.3.4 ou supérieur (avant cela, $lookup sur les tableaux n'était pas autorisé).