Database

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

Query

db.role.aggregate([{$match:{"type":"internal"}},{$lookup:{from:"user",as:"users",localField:"id",foreignField:"role.roleId"}}])

Result