Merge branch 'hotfix/21.56.9' into master
[gitter.git] / scripts / useful-queries / banned-users-in-rooms.js
blob493901d03894c6383fcc4665a5df06ee1db3ba94
1 rs.slaveOk();
3 print('| troupeId | uri | userId | username |');
5 var aggregation = db.troupes.aggregate([
6   {
7     $match: {
8       bans: {
9         $exists: true
10       }
11     }
12   },
13   {
14     $project: {
15       _id: 1,
16       uri: 1,
17       bans: 1
18     }
19   },
20   {
21     $unwind: '$bans'
22   },
23   {
24     $lookup: {
25       from: 'troupeusers',
26       localField: 'bans.userId',
27       foreignField: 'userId',
28       as: 'troupeUsers'
29     }
30   },
31   {
32     $unwind: '$troupeUsers'
33   },
34   {
35     $project: {
36       _id: 1,
37       userId: '$troupeUsers.userId',
38       bans: 1,
39       uri: 1,
40       match: { $eq: ['$troupeUsers.troupeId', '$_id'] }
41     }
42   },
43   {
44     $match: {
45       match: true
46     }
47   },
48   {
49     $lookup: {
50       from: 'users',
51       localField: 'userId',
52       foreignField: '_id',
53       as: 'bannedUser'
54     }
55   },
56   {
57     $unwind: '$bannedUser'
58   },
59   {
60     $project: {
61       _id: 1,
62       uri: 1,
63       userId: 1,
64       username: '$bannedUser.username'
65     }
66   }
67 ]);
69 aggregation.toArray().forEach(function(row) {
70   print('| ' + row._id + ' | ' + row.uri + ' | ' + row.userId + ' | ' + row.username);
71 });