mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-02-17 08:50:58 -05:00
Find invalid courses script
This commit is contained in:
parent
d6d208803c
commit
b280e6ff79
1 changed files with 35 additions and 0 deletions
35
scripts/mongodb/queries/findInvalidCourses.js
Normal file
35
scripts/mongodb/queries/findInvalidCourses.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
// Find classrooms referencing invalid courses
|
||||
|
||||
// Usage:
|
||||
// mongo <address>:<port>/<database> <script file> -u <username> -p <password>
|
||||
|
||||
print("Finding classrooms..");
|
||||
var courseIDMap = {};
|
||||
db.classrooms.find({}, {name: 1, courses: 1}).toArray().forEach(function (classroom) {
|
||||
for (var i = 0; i < classroom.courses.length; i++) {
|
||||
courseIDMap[classroom.courses[i]._id.valueOf()] = true;
|
||||
}
|
||||
});
|
||||
|
||||
var courseIDs = [];
|
||||
for (var courseID in courseIDMap) {
|
||||
print(courseID);
|
||||
courseIDs.push(ObjectId(courseID));
|
||||
}
|
||||
print("Unique courses referenced from classrooms: " + courseIDs.length);
|
||||
|
||||
print("Finding referenced courses..");
|
||||
var foundMap = {};
|
||||
db.courses.find({_id: {$in: courseIDs}}).toArray().forEach(function (course) {
|
||||
foundMap[course._id.valueOf()] = true;
|
||||
});
|
||||
|
||||
print("Finding invalid courses and their classrooms..");
|
||||
for (var courseID in courseIDMap) {
|
||||
if (!foundMap[courseID]) {
|
||||
print("Missing course: " + courseID);
|
||||
db.classrooms.find({'courses._id': ObjectId(courseID)}, {name: 1}).toArray().forEach(function (classroom) {
|
||||
print("Missing classroom: " + classroom._id.valueOf() + " " + classroom.name);
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue