db.users.find({ $or: [ {'backer.admin': {$exists: 1}}, {'backer.contributor': {$exists: 1}}, ], }, {backer: 1}).forEach(function (user) { user.contributor = {}; user.contributor.admin = user.backer.admin; delete user.backer.admin; // this isnt' the proper storage format, but I'm going to be going through the admin utility manually and setting things properly if (user.backer.contributor) { user.contributor.text = user.backer.contributor; delete user.backer.contributor; } db.users.update({_id: user._id}, {$set: {backer: user.backer, contributor: user.contributor}}); });