Hlavním problémem je, že chcete všechna pole z hlavního dokumentu (protože neznáte všechny) plus pouze 2 ze seznamu.
Mělo by to stačit:
{
$project: {
"_id": 0,
"document": "$$CURRENT",
"list._id": "$$CURRENT.list._id",
"list.name": "$$CURRENT.list.name"
}
}, {
$project: {
"document.list": 0
}
}, {
$addFields: {
"document.list._id": "$$CURRENT.list._id",
"document.list.name": "$$CURRENT.list.name"
}
}, {
$replaceRoot: {
newRoot: "$document"
}
}
Prochází několika fázemi, ale svou práci zvládne :). Chtělo by to aktuální dokument a pouze požadovaná pole seznamu. Poté by z aktuálního dokumentu odstranil jeho seznam. Pak by do stejného dokumentu přidal seznam (protože ten je s konkrétními poli, která chceme). Pak by tato pole přidal do dokumentu a nakonec by nahradil kořen tímto dokumentem.