Du kan gøre det med noget som dette i MongoDB 3.2, forudsat at samlingen, der har detaljerne, er video.details
og det felt, du tilmelder dig til venstre, er _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"
}
}
}
}
]
Så dybest set laver du dit opslag, men senere i et $gruppestadie bygger du outputtet, som du kan lide det. du har muligvis ikke brug for det første $unwind-trin, hvis du bruger MongoDB 3.3.4 eller nyere (tidligere var $opslag på arrays ikke tilladt).