Pokud máte v dílčím dokumentu mnoho a mnoho polí a občas se aktualizuje o nová pole, pak projekce není schůdnou možností. Naštěstí od verze 3.4 má MongoDB nového operátora s názvem $replaceRoot .
Jediné, co musíte udělat, je přidat novou fázi na konec vašeho kanálu.
db.getCollection('sample').aggregate([
{
$replaceRoot: {newRoot: "$command"}
},
{
$project: {score: 0 } //exclude score field
}
])
Tím získáte požadovaný výstup.
Upozorňujeme, že v případě agregace (zejména po $group stage) 'příkazový' dokument může být pole a může obsahovat více dokumentů. V tomto případě musíte $unwind pole jako první, aby bylo možné použít $replaceRoot .