Oui, vous pouvez utilisez $project pour faire ça. Il suffit de lui dire de récupérer le contents imbriqué objet utilisant la notation par points
:
db.items.aggregate( {$project: {contents:'$field1.contents'}} );
De plus, si vous souhaitez masquer le _id champ de la sortie, vous pouvez spécifier _id: 0 dans le $project paramètres :
db.items.aggregate( {$project: {contents:'$field1.contents', _id:0}} );