主な課題は、メインドキュメントのすべてのフィールドが必要なことです。 (すべてを知っているわけではないので)プラスリストから2つだけ。
これでうまくいくはずです:
{
$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"
}
}
それはいくつかの段階を経ますが、仕事を成し遂げます:)。現在のドキュメントと必要なリストフィールドのみを取得します。次に、現在のドキュメントからそのリストを削除します。次に、同じドキュメントにリストを追加します(必要な特定のフィールドがあるため)。次に、それらのフィールドをドキュメントに追加し、最後にルートをそのドキュメントに置き換えます。