Database

[{"database":"test","collection":"grupos","count":10,"content":{"Identificador":{"type":"string","minlength":6,"maxlength":6},"Miembros":{"type":"array","size":30,"arrayContent":{"type":"object","objectContent":{"_id":{"type":"objectId"},"nombre":{"type":"faker","method":"FirstName"},"edad":{"type":"int","minInt":20,"maxInt":50},"ciudad":{"type":"faker","method":"City","maxDistinctValue":15}}}}}}]

Query

db.grupos.aggregate([{"$unwind":"$Miembros"},{"$match":{"Miembros.edad":{"$gte":35}}},{"$sort":{"Miembros.nombre":-1}},{"$group":{"_id":"$Miembros.ciudad","Miembros":{"$push":{"nombre":"$Miembros.nombre"}}}},{"$match":{"$expr":{"$gte":[{"$size":"$Miembros"},15]}}}])

Result