De belangrijkste uitdaging is dat u alle velden uit het hoofddocument . wilt hebben (omdat je ze niet allemaal kent) plus slechts 2 van de lijst.
Dit zou het moeten doen:
{
$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"
}
}
Het doorloopt een paar fasen, maar klaart de klus :). Het zou het huidige document gebruiken en alleen de lijstvelden die u wilt. Dan zou het zijn lijst uit het huidige document verwijderen. Dan zou het aan datzelfde document de lijst toevoegen (aangezien die met de specifieke velden is die we willen). Dan zou het die velden aan het document toevoegen en ten slotte zou het de root vervangen door dat document.