Database

[{name:"Team A",players:[{name:"Michael",position:"Goalkeeper"},{name:"Frank",position:"Defender"},{name:"Mike",position:"Goalkeeper"}]}]

Query

db.collection.aggregate([{$project:{players:{"$reduce":{"input":"$players","initialValue":[],"in":{"$cond":{"if":{$eq:["$$this.position","Goalkeeper"]},"then":{"$setUnion":["$$value",["$$this.name"]]},"else":"$$value"}}}}}}])

Result