add migrations to fix groups

This commit is contained in:
Matteo Pagliazzi
2015-09-06 19:10:24 +02:00
parent b395596614
commit 45f2b093f8
3 changed files with 121 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
/*
* Remove deleted accounts from groups
*/
var mongo = require('mongoskin');
var dbserver = 'mongodb://url';
var dbname = 'dbname';
var countGroups = 0;
var countUsers = 0;
var db = mongo.db(dbserver + '/' + dbname + '?auto_reconnect');
var dbUsers = db.collection('users');
var dbGroups = db.collection('groups');
console.log('Begins work on db');
dbGroups.findEach({}, {_id: 1, members: 1}, {batchSize: 500}, function(err, group) {
if(err) throw err;
if(!group) return;
countGroups++;
console.log('Group: ', countGroups);
var members = group.members;
// Remove users who deleted their account
members.forEach(function(member){
dbUsers.count({_id: member}, function(err, count){
if(err) throw err;
if(count < 1) {
countUsers++;
console.log('User: ', countUsers);
dbGroups.update({
_id: group._id
}, {
$pull: {members: member},
$inc: {memberCount: -1}
}, {
multi: false
}, function(err, res){
if(err) throw err;
console.log('Updated: ', res);
});
}
});
});
});