Database

db={"user":[{"name":"Scott","isActive":true,"role":{"roleId":"123432"}},{"name":"John","isActive":true,"role":{"roleId":"123432"}},{"name":"Scott","isActive":true,"role":{"roleId":"556432"}}],"roles":[{"id":"123432","name":"admin","type":"internal"},{"id":"556432","name":"owner","type":"external"},{"id":"556432","name":"owner","type":"internal"}]}

Query

db.user.aggregate([{"$lookup":{"from":"roles","localField":"role.roleId","foreignField":"id","as":"roles"}},{$project:{roles:{"$filter":{"input":"$roles","cond":{$eq:["$$this.type","internal"]}}}}},{$match:{roles:{$ne:[]}}}])

Result