Database
db={dataA:[{item:"card",qty:15,code:100},{item:"pass",qty:15,code:230},{item:"badge",qty:15,code:543},{item:"passX",qty:15,code:876},],dataB:[{code:230,ref:"AAZRT"},{code:888,ref:"RUBFE"},{code:876,ref:"ERHAA"},{code:120,ref:"DRETAR"},]}
Query
db.dataA.aggregate([{$group:{_id:0,codes:{$addToSet:"$code"}}},{$lookup:{from:"dataB",let:{codes:"$codes"},pipeline:[{$match:{$expr:{$not:{"$in":["$code","$$codes"]}}}}],as:"codes"}},{$unwind:"$codes"},{"$replaceRoot":{"newRoot":"$codes"}}])