Als u veel, veel velden in het subdocument hebt en het af en toe wordt bijgewerkt met nieuwe velden, dan is projectie geen haalbare optie. Gelukkig heeft MongoDB sinds 3.4 een nieuwe operator genaamd $replaceRoot .
Het enige wat u hoeft te doen is een nieuwe fase aan het einde van uw pijplijn toe te voegen.
db.getCollection('sample').aggregate([
{
$replaceRoot: {newRoot: "$command"}
},
{
$project: {score: 0 } //exclude score field
}
])
Dit zou je de gewenste output geven.
Merk op dat in het geval van aggregatie (vooral na een $group stage) kan het 'opdracht'-document een array zijn en meerdere documenten bevatten. In dit geval moet u $unwind de array eerst om $replaceRoot .