From 9eecb977ea0ab1a4c97e6cbac3c7da67b30027b9 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Tue, 29 Oct 2013 19:06:01 +0100 Subject: [PATCH] add migration to add invited users to group.invites, @lefnire I tried with _.each(db.users.find()) but doesnt seem to work for db records so I ended up using db.users.find().forEach... which instead seems to work. My first migration to cleanup deleted tags used _.each so I rewrote it using native forEach, just wanted to let you know that it is updated now. --- migrations/20131028_cleanup_deleted_tags.js | 4 +-- migrations/20131029_add_invites_to_groups.js | 31 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 migrations/20131029_add_invites_to_groups.js diff --git a/migrations/20131028_cleanup_deleted_tags.js b/migrations/20131028_cleanup_deleted_tags.js index 165088dc6a..d708fc6985 100644 --- a/migrations/20131028_cleanup_deleted_tags.js +++ b/migrations/20131028_cleanup_deleted_tags.js @@ -1,4 +1,4 @@ -_.each(db.users.find(), function(user){ +db.users.find().forEach(function(user){ var tags = user.tags; _.each(user.tasks, function(task){ @@ -6,7 +6,7 @@ _.each(db.users.find(), function(user){ _.each(tags, function(tag){ if(key == tag.id) delete task.tags[key]; }); - }; + }); }); try { diff --git a/migrations/20131029_add_invites_to_groups.js b/migrations/20131029_add_invites_to_groups.js new file mode 100644 index 0000000000..63947c1e23 --- /dev/null +++ b/migrations/20131029_add_invites_to_groups.js @@ -0,0 +1,31 @@ +var groups = {}; + +db.users.find().forEach(function(user){ + if(user.invitations){ + if(user.invitations.party){ + groups[user.invitations.party.id] = groups[user.invitations.party.id] || []; + groups[user.invitations.party.id].push(user._id); + } + + if(user.invitations.guilds){ + _.each(user.invitations.guilds, function(guild){ + groups[guild.id] = groups[guild.id] || []; + groups[guild.id].push(user._id); + }); + } + } +}); + +_.each(groups, function(usersInvited, groupId){ + var group = db.groups.findOne({_id: groupId}); + + if(group){ + group.invites = usersInvited; + + try { + db.groups.update({_id: groupId}, group); + } catch(e) { + print(e); + } + }; +});