Você pode fazer isso com algo assim no MongoDB 3.2 assumindo que a coleção que tem os detalhes é
video.details
e o campo em que você está unindo à esquerda é _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"
}
}
}
}
]
Então, basicamente, você faz sua pesquisa, mas mais tarde, em um estágio de grupo $, cria a saída do jeito que você gosta. você pode não precisar do primeiro estágio $unwind se estiver usando o MongoDB 3.3.4 ou superior (anteriormente a $lookup em arrays não era permitida).