Puoi farlo con qualcosa del genere in MongoDB 3.2 supponendo che la raccolta con i dettagli sia video.details
e il campo in cui ti stai unendo a sinistra è _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"
}
}
}
}
]
Quindi fondamentalmente fai la tua ricerca ma più tardi in una fase di $gruppo costruisci l'output nel modo in cui ti piace. potresti non aver bisogno della prima fase di $unwind se stai usando MongoDB 3.3.4 o versioni successive (prima di quella $ la ricerca sugli array non era consentita).