Możesz to zrobić za pomocą czegoś takiego w MongoDB 3.2, zakładając, że kolekcja zawierająca szczegóły to video.details
a pole, do którego dołączasz z lewej strony, to _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"
}
}
}
}
]
Więc w zasadzie wykonujesz wyszukiwanie, ale później, na etapie grupy $, budujesz dane wyjściowe tak, jak lubisz. możesz nie potrzebować pierwszego etapu $unwind, jeśli używasz MongoDB 3.3.4 lub nowszego (poprzednio nie zezwalano na wyszukiwanie $ w tablicach).