Skip to content

Instantly share code, notes, and snippets.

@travist
Last active October 19, 2018 00:54
Show Gist options
  • Save travist/bc64c3d279397611a83e144ae14aa58e to your computer and use it in GitHub Desktop.
Save travist/bc64c3d279397611a83e144ae14aa58e to your computer and use it in GitHub Desktop.
Undelete Project
var PROJECT = '';
db.projects.find({_id: ObjectId(PROJECT)}).forEach(function(project) {
var TIMESTAMP = (project.deleted > 0) ? (project.deleted - 1000) : 0;
print('Undeleting project ' + project._id.toString());
db.projects.update({_id: ObjectId(PROJECT)}, {$set: {deleted: null}});
print('Undeleting forms within ' + project._id.toString());
db.forms.update({project: project._id, deleted: {$gt: TIMESTAMP}}, {$set: {deleted: null}}, {multi: true});
print('Undeleting roles within ' + project._id.toString());
db.roles.update({project: project._id, deleted: {$gt: TIMESTAMP}}, {$set: {deleted: null}}, {multi: true});
db.forms.find({project: project._id, deleted: {$gt: TIMESTAMP}}).forEach(function(form) {
print('Undeleting actions for form ' + form._id.toString());
db.actions.update({form: form._id, deleted: {$gt: TIMESTAMP}}, {$set: {deleted: null}}, {multi: true});
print('Undeleting submissions for form ' + form._id.toString());
db.submissions.update({form: form._id, deleted: {$gt: TIMESTAMP}}, {$set: {deleted: null}}, {multi: true});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment