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).