Ketika Anda memiliki banyak, banyak bidang dalam sub-dokumen dan kadang-kadang diperbarui dengan bidang baru, maka proyeksi bukanlah pilihan yang layak. Untungnya, sejak 3.4, MongoDB memiliki operator baru bernama $replaceRoot .
Yang harus Anda lakukan adalah menambahkan tahap baru di akhir saluran Anda.
db.getCollection('sample').aggregate([
{
$replaceRoot: {newRoot: "$command"}
},
{
$project: {score: 0 } //exclude score field
}
])
Ini akan memberi Anda hasil yang diinginkan.
Perhatikan bahwa dalam kasus agregasi (terutama setelah $group stage) dokumen 'perintah' dapat berupa larik dan dapat berisi banyak dokumen. Dalam hal ini Anda perlu $unwind array terlebih dahulu agar dapat menggunakan $replaceRoot .