Głównym wyzwaniem jest to, że chcesz wszystkie pola z głównego dokumentu (ponieważ nie znasz ich wszystkich) plus tylko 2 z listy.
To powinno wystarczyć:
{
$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"
}
}
Przechodzi przez kilka etapów, ale wykonuje swoją pracę :). Wymagałoby to bieżącego dokumentu i tylko żądanych pól listy. Następnie usunie z bieżącego dokumentu swoją listę. Następnie dodałby do tego samego dokumentu listę (ponieważ ten zawiera określone pola, które chcemy). Następnie doda te pola do dokumentu, a na końcu zamieni katalog główny na ten dokument.