From 10402fa945949f5cefe23d785acbee2c983eef80 Mon Sep 17 00:00:00 2001 From: Scott Erickson <sderickson@gmail.com> Date: Fri, 19 Feb 2016 13:13:45 -0800 Subject: [PATCH] Make fix-arena-sessions script run across all classrooms --- .../2016-02-11-fix-arena-sessions.js | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/scripts/mongodb/migrations/2016-02-11-fix-arena-sessions.js b/scripts/mongodb/migrations/2016-02-11-fix-arena-sessions.js index 4c4617e3f..3f38448c7 100644 --- a/scripts/mongodb/migrations/2016-02-11-fix-arena-sessions.js +++ b/scripts/mongodb/migrations/2016-02-11-fix-arena-sessions.js @@ -2,33 +2,33 @@ // Usage: // mongo <address>:<port>/<database> <script file> -u <username> -p <password> -// Set classroomID and levelSlug first before running! +print('Loading levels...'); +var levels = [db.levels.findOne({slug: 'wakka-maul'}), db.levels.findOne({slug: 'cross-bones'})]; +print('Loaded'); -var classroomID = ObjectId('568ac66d648b9e5100de0cca'); -var levelSlug = 'wakka-maul'; +db.classrooms.find({'aceConfig.language': 'javascript'}).forEach(function(classroom) { + for (var l in levels) { + var level = levels[l]; + print('----------------------------'); + print('Classroom:', classroom.name); + print('Members:', classroom.members.length); + print('Level:', level.name); -var classroom = db.classrooms.findOne({_id: classroomID}); -var level = db.levels.findOne({slug: levelSlug}); - -if(!classroom) { throw new Error('Classroom not found (should be an id)'); } -if(!level) { throw new Error('Level not found (should be a slug)'); } - -print('Classroom:', classroom.name); -print('Members:', classroom.members.length); -print('Level:', level.name); - -for (var i in classroom.members) { - var member = classroom.members[i]; - var sessions = db.level.sessions.find({'level.original': level.original+'', 'creator': member+''}).toArray(); - print(' user:', member); - for (var j in sessions) { - var session = sessions[j]; - print(' session:', session._id, 'has language', session.codeLanguage); - if (session.codeLanguage === classroom.aceConfig.language) { - print(' all is well'); - continue; + for (var i in classroom.members) { + var member = classroom.members[i]; + var sessions = db.level.sessions.find({'level.original': level.original+'', 'creator': member+''}).toArray(); + print(' user:', member); + for (var j in sessions) { + var session = sessions[j]; + print(' session:', session._id, 'has language', session.codeLanguage); + if (session.codeLanguage === classroom.aceConfig.language) { + print(' all is well'); + continue; + } + print(' updating language...'); + print(' ', db.level.sessions.update({_id: session._id}, {$set: {codeLanguage: classroom.aceConfig.language}})); + } + } } - print(' updating language...'); - print(' ', db.level.sessions.update({_id: session._id}, {$set: {codeLanguage: classroom.aceConfig.language}})); - } -} +}); +