Database
db={"Collection1":[{"_id":1,"Field1":"Some info","Field2":"Some other info","Elements":[{"id":0,"Enabled":false},{"id":1,"Enabled":false},{"id":2,"Enabled":false},{"id":7,"Enabled":false}]},{"_id":2.0,"Field1":"Some info","Field2":"Some other info","Elements":[{"id":0.0,"Enabled":false},{"id":1.0,"Enabled":false},{"id":2.0,"Enabled":false}]}],"Collection2":[{"_id":ObjectId("5e5454194dc32ed4641e10bb"),"Identifier":"identifier","ElementsOverride":[{"id":0,"Enabled":true},{"id":1,"Enabled":false},{"id":2,"Enabled":true},{"id":6,"Enabled":true}]}]}
Query
db.Collection1.aggregate([{$match:{_id:1}},{$lookup:{from:"Collection2",pipeline:[{$match:{$expr:{$eq:["$Identifier","identifier"]}}}],as:"data"}},{$unwind:"$data"},{$addFields:{Identifier:"$data.Identifier",Elements:{$reduce:{input:{$reverseArray:{$setUnion:["$Elements","$data.ElementsOverride"]}},initialValue:[],in:{$concatArrays:["$$value",{$cond:[{$in:["$$this.id","$$value.id"]},[],["$$this"]]}]}}}}},{$project:{data:0}}])