sql >> Base de Datos >  >> NoSQL >> MongoDB

Utilice $búsqueda en una matriz de objetos

Puede hacerlo con algo como esto en MongoDB 3.2 asumiendo que la colección que tiene los detalles es video.details y el campo en el que te has unido a la izquierda es _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"
            }
         }
      }
   }
]

Entonces, básicamente, haces tu búsqueda, pero más tarde en una etapa de grupo de $ construyes la salida de la manera que te gusta. es posible que no necesite la primera etapa $unwind si está utilizando MongoDB 3.3.4 o superior (antes de eso, no se permitía la $búsqueda en arreglos).