Database
db={"organizations":[{"_id":"1","name":"foo","users":{"1":"admin","2":"member"}},{"_id":"2","name":"bar","users":{"1":"admin"}}],"users":[{"_id":"1","name":"john1 smith"},{"_id":"2","name":"bob johnson"}]}
Query
db.organizations.aggregate([{"$match":{"_id":"1"}},{"$set":{"usersArray":{"$objectToArray":"$users"}}},{"$unwind":"$usersArray"},{"$lookup":{"from":"users","localField":"usersArray.k","foreignField":"_id","as":"members"}},{"$set":{"members.role":"$usersArray.v"}},{"$group":{"_id":{"_id":"$_id","users":"$users","name":"$name"},"members":{"$push":"$members"}}},{"$project":{"members":{"$reduce":{"input":"$members","initialValue":[],"in":{"$concatArrays":["$$value","$$this"]}}},"users":"$_id.users","name":"$_id.name","_id":"$_id._id"}}])