Database

db={"PARTS":[{"shop":"Q4","count":2},{"shop":"Q5","count":3},{"shop":"Q6","count":2}],"INPROCESS":[{"shop":"Q4","itemID":"5647"},{"shop":"Q4","itemID":"2314"},{"shop":"Q5","itemID":"2314"},],"REJECTED":[{"shop":"Q5","itemID":"xxxx"},{"shop":"Q5","itemID":"yyyy"},{"shop":"Q6","itemID":"yyyy"}]}

Query

db.PARTS.aggregate([{$lookup:{from:"INPROCESS",localField:"shop",foreignField:"shop",as:"inprocess"}},{$match:{$expr:{$ne:["$count",{$size:"$inprocess"}]}}},{$lookup:{from:"REJECTED",localField:"shop",foreignField:"shop",as:"rejected"}},{$match:{$expr:{$ne:["$count",{$add:[{$size:"$inprocess"},{$size:"$rejected"}]}]}}}])

Result