Đây là cách tôi sẽ đi về nó. Để bạn loại bỏ id nhóm "tạo tác" thì bạn sẽ phải chiếu đầu ra của nhóm và không bao gồm id.
db.getCollection('MyClass').aggregate( [
{$unwind: '$Class'},
{ $project : { Name : 1 ,
Occupation : 1,
Class : {
ClassType:1,
Professors:{
$cond: {
if: { $eq: ["$Class.ClassType", "English"] },
then: [],
else: "$Class.Professors"
}
}
}
}
},
{$group: {
_id: '$_id',
Name: {$first: '$Name'},
Occupation: {$first: '$Occupation'},
Class: {$push: '$Class'}
}},
])