commit
5076418052
|
@ -0,0 +1,46 @@
|
|||
/* eslint-disable no-process-exit */
|
||||
|
||||
/**
|
||||
* Data creation script for academic data pushes. Run this script with
|
||||
* node seed/get-challenge-completion.js >> ~/output.json
|
||||
* For large data sets supply the flag --max_old_space_size=2000000 to node.
|
||||
* Run from the root FCC directory. Beware, this will generate a very large file
|
||||
* if you have a large user collection such as the production mongo db.
|
||||
*/
|
||||
|
||||
require('dotenv').load();
|
||||
var secrets = require('../config/secrets'),
|
||||
mongodb = require('mongodb'),
|
||||
MongoClient = mongodb.MongoClient;
|
||||
|
||||
MongoClient.connect(secrets.db, function(err, database) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
var stream = database.collection('user')
|
||||
.find({'completedChallenges': { $ne: null },
|
||||
'isLocked': { $ne: true } },
|
||||
{'completedChallenges': true})
|
||||
.stream();
|
||||
console.log('[');
|
||||
stream.on('data', function(results) {
|
||||
if (!results.completedChallenges) {
|
||||
// dud
|
||||
} else {
|
||||
var dataOut = [];
|
||||
results.completedChallenges.forEach(function(challenge) {
|
||||
dataOut.push({
|
||||
name: challenge.name,
|
||||
completedDate: challenge.completedDate,
|
||||
solution: challenge.solution
|
||||
});
|
||||
});
|
||||
if (dataOut.length) {
|
||||
console.log(JSON.stringify(dataOut) + ',');
|
||||
}
|
||||
}
|
||||
}).on('end', function() {
|
||||
console.log(']');
|
||||
process.exit(0);
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue