Můžete to udělat s něčím takovým v MongoDB 3.2 za předpokladu, že kolekce, která má podrobnosti, je video.details
a pole, ke kterému se připojujete vlevo, je _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"
}
}
}
}
]
Takže v podstatě provedete vyhledávání, ale později ve fázi $ group vytvoříte výstup tak, jak se vám líbí. možná nebudete potřebovat první fázi $unwind, pokud používáte MongoDB 3.3.4 nebo vyšší (předtím nebylo $lookup na polích povoleno).