Database
[{"key":1,"sub":[{"id":4,"value":23},{"id":1,"value":24}]},{"key":2,"sub":[{"id":1,"value":92},{"id":2,"value":93}]},{"key":4,"sub":[{"id":3,"value":22},{"id":2,"value":43}]}]
Query
db.collection.aggregate([{"$match":{"sub.id":1}},{"$project":{_id:0,"sub":{$reduce:{input:{"$filter":{"input":"$sub","cond":{$eq:["$$this.id",1]}}},initialValue:[],in:{$concatArrays:[[{key:"$key",id:"$$this.id",value:"$$this.value"}],"$$value"]}}}}},{$unwind:"$sub"},{$replaceRoot:{newRoot:"$sub"}}])