Database

db={items:[{_id:"some_id",category_A:"foo",category_B:"bar",}],categories:[{_id:"foo_id",name:"foo",type:"A"},{_id:"bar_id",name:"bar",type:"B"}]}

Query

db.items.aggregate([{$lookup:{from:"categories","let":{"category_A":"$category_A"},"pipeline":[{"$match":{$expr:{$and:[{$eq:["$name","$$category_A"]},{$eq:["$type","A"]}]}}}],as:"category_A_out"}}])

Result