Merge branch 'hotfix/21.56.9' into master
[gitter.git] / scripts / useful-queries / integration-of-chats-over-active-chatters.mongo
blob297ec88e5df202ce28d295a16b1a5ba806b705ee
1 rs.slaveOk()
2 load('./csv.js');
4 var period = 86400000 * 30;
5 var now = Date.now();
6 var p1 = new Date(now - period);
8 var a = db.chatmessages.aggregate([{
9   $match: {
10     _id: { $gt: createIdForTimestampString(p1) },
11     sent: { $type: 'date' }
12   }
13 }, {
14   $group: {
15     _id: '$toTroupeId',
16     chats: { $sum: 1 },
17     activeUsers: { $addToSet: '$fromUserId' }
18   },
19 }, {
20   $lookup: {
21     from: "troupes",
22     localField: "_id",
23     foreignField: "_id",
24     as: "troupe"
25   },
26 }, {
27   $unwind: "$troupe"
28 }, {
29   $match: {
30     'troupe.oneToOne': { $ne: true }
31   }
32 }, {
33   $project: {
34     chats: 1,
35     activeUsers: { $size: '$activeUsers' }
36   },
37 }, {
38   $group: {
39     _id: '$activeUsers',
40     totalChats: { $sum: '$chats' },
41   },
42 }, {
43   $sort: {
44     _id: 1
45   }
46 }, {
47   $project: {
48     _id: 0,
49     numActivUsers: '$_id',
50     totalChats: 1
51   }
52 }]);
54 printCSV(a, ['numActivUsers', 'totalChats']);