wfh_2020_export.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const mongojs = require('../../app/src/infrastructure/mongojs')
  2. const { db } = mongojs
  3. const async = require('async')
  4. db.deletedSubscriptions.aggregate(
  5. { $match: { 'subscription.teamName': /(Work From Home|Work from Home)/ } },
  6. { $unwind: '$subscription.member_ids' },
  7. {
  8. $group: { _id: null, memberIds: { $addToSet: '$subscription.member_ids' } }
  9. },
  10. function(err, results) {
  11. if (err) {
  12. console.error(err)
  13. process.exit(1)
  14. }
  15. if (!results.length) {
  16. console.error('No users found')
  17. process.exit(1)
  18. }
  19. const userIds = results[0].memberIds
  20. console.log('Id,First Name,Last Name,Sign Up Date,Emails')
  21. async.eachLimit(
  22. userIds,
  23. 10,
  24. function(userId, callback) {
  25. db.users.findOne(userId, function(err, user) {
  26. if (user) {
  27. const emails = user.emails.map(email => email.email)
  28. console.log(
  29. `${user._id},${user.first_name || ''},${user.last_name || ''},${
  30. user.signUpDate
  31. },${emails.join(',')}`
  32. )
  33. } else {
  34. console.error('A group user was not found')
  35. }
  36. callback(err)
  37. })
  38. },
  39. function(err) {
  40. if (err) {
  41. console.error(err)
  42. process.exit(1)
  43. }
  44. process.exit(0)
  45. }
  46. )
  47. }
  48. )