Database

db={"characters":[{"name":"test1","level":20,},{"name":"test2","level":40,}],"guilds":[{"members":[{"name":"test1","rank":1},{"name":"test2","rank":2}]}]}

Query

db.guilds.aggregate([{$lookup:{from:"characters",localField:"members.name",foreignField:"name",as:"members_t"}}])

Result