Database

db={"users":[{"_id":1,"username":"Fred Smith","level":12,},{"_id":2,"username":"Bob Brown","level":20,},{"_id":3,"username":"Joe Blogs","level":1}],"groups":[{"_id":1,"groupname":"admin","members":["Fred Smith"]},{"_id":2,"groupname":"users","members":["Fred Smith","Bob Brown","contractors"]},{"_id":3,"groupname":"contractors","members":["Joe Blogs"]},{"_id":4,"groupname":"comms","members":["Joe Blogs"]},{"_id":5,"groupname":"all","members":["users"]},]}

Query

db.groups.aggregate([{$match:{"groupname":{$in:["all","comms"]}}},{"$graphLookup":{"from":"groups","startWith":"$groupname","connectFromField":"members","connectToField":"groupname","as":"groups","maxDepth":10}},{$project:{"username":1,"groups":"$groups.groupname"}}])

Result