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":"all","members":["users"]},]}
Query
db.users.aggregate([{$match:{"username":"Joe Blogs"}},{"$graphLookup":{"from":"groups","startWith":"$username","connectFromField":"username","connectToField":"members","as":"groups","maxDepth":10}},{$project:{"username":1,"groups":"$groups.groupname"}}])