Le principal défi est que vous voulez tous les champs du document principal (puisque vous ne les connaissez pas tous) plus seulement 2 de la liste.
Cela devrait le faire :
{
$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"
}
}
Il passe par quelques étapes mais fait le travail :). Cela prendrait le document actuel et seulement les champs de liste que vous voulez. Ensuite, il supprimerait de la doc actuelle sa liste. Ensuite, il ajouterait à ce même document la liste (puisque celle-ci contient les champs spécifiques que nous voulons). Ensuite, il ajouterait ces champs au document et, enfin, il remplacerait la racine par ce document.