var counts = { hasClassroom: 0, isOwn: 0, migrated: 0 }; // script for generating codes // JSON.stringify(_.unique(_.map(_.range(1000), function() { return _.sample("abcdefghijklmnopqrstuvwxyz0123456789", 8).join('') }))) var codes = db.course.instances.find().forEach(function(courseInstance) { if(courseInstance.classroomID) { counts.hasClassroom += 1; return; } if(courseInstance.ownerID && courseInstance.members && courseInstance.ownerID.equals(courseInstance.members[0]) && courseInstance.members.length === 1) { counts.isOwn += 1; return; } var id = ObjectId(); var newClassroom = { members: courseInstance.members, ownerID: courseInstance.ownerID, description: courseInstance.description, name: courseInstance.name, code: codes.pop(), _id: id }; print('migrating', JSON.stringify(newClassroom, null, '\t')); db.classrooms.save(newClassroom); courseInstance.classroomID = id; db.course.instances.save(courseInstance); });