text: /* 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 firstTime = true;
  
    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) {
          if (!firstTime) {
            console.log(',' + JSON.stringify(dataOut));
          } else {
            firstTime = false;
            console.log(JSON.stringify(dataOut));
          }
        }
      }
    }).on('end', function() {
      console.log(']');
      process.exit(0);
    });
  });
  