// Print out spoken language usage based on signed-in user data // Usage: // mongo <address>:<port>/<database> <script file> -u <username> -p <password> var total = 0; var languages = {}; //var startDate = new ISODate("2014-12-01T00:00:00.000Z"); var cursor = db['users'].aggregate( [ { $match : { //$and: [{codeLanguage: {$exists: true}}, {created : { $gte: startDate}}] anonymous: false } }, { $group : { _id: "$preferredLanguage", total: {$sum: 1} } }, { $sort : { total : -1} } ]); while (cursor.hasNext()) { var myDoc = cursor.next(); total += myDoc.total; var lang = myDoc._id || 'en-US'; if (!languages[myDoc._id]) languages[myDoc._id] = 0 languages[myDoc._id] += myDoc.total } print("Total registered users with spoken languages", total); for (key in languages) { print(languages[key] + "\t" + (languages[key] / total * 100).toFixed(2) + "%\t" + key); }