wfh_2020_export.js 1.3 KB

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