Database
[{"customerSchemes":[{"name":"A","startDate":2},{"name":"B","startDate":1}]},{"customerSchemes":[{"name":"A","startDate":1},{"name":"B","startDate":5}]},{"customerSchemes":[{"name":"A","startDate":4},{"name":"B","startDate":1}]}]
Query
db.collection.aggregate([{$unwind:"$customerSchemes"},{"$group":{"_id":"$_id","data":{$push:"$$ROOT"},"fields":{"$mergeObjects":{"$arrayToObject":[[["$customerSchemes.name","$customerSchemes.startDate"]]]}}}},{$match:{$expr:{$gt:["$fields.A","$fields.B"]}}},{$project:{_id:0,data:1}},])