Database

[{directConfigs:[{id:ObjectId("627279d3ba7aef5d6418c867"),name:"Config A"},{id:ObjectId("628e32777b9e83619746ee3f"),name:"Config B"}],indirectConfigs:[{id:ObjectId("627279d3ba7aef5d6418c867"),name:"Config A"},{id:ObjectId("628b4d3ff5b1c1736c0b654a"),name:"Config C"}]}]

Query

db.collection.aggregate([{$set:{both:{"$setIntersection":["$directConfigs","$indirectConfigs"]}}},{$set:{directConfigs:{$setDifference:["$directConfigs","$both"]},indirectConfigs:{$setDifference:["$indirectConfigs","$both"]}}},{$project:{configs:{$concatArrays:[{$map:{input:"$both",in:{$mergeObjects:["$$this",{type:"both"}]}}},{$map:{input:"$directConfigs",in:{$mergeObjects:["$$this",{type:"direct"}]}}},{$map:{input:"$indirectConfigs",in:{$mergeObjects:["$$this",{type:"indirect"}]}}}]}}}])

Result