[#1862] re-migrat users with items.pets, items.hatchingPotions, or

items.eggs which are arrays, not objects. This shouldn't be happening
still, need to investigate
This commit is contained in:
Tyler Renelle 2013-11-22 16:21:53 -07:00
parent f006a97f42
commit fac99c7f7f

View file

@ -1,31 +1,36 @@
db.users.find({},{backer: 1, items:1}).forEach(function(user){
user.items = {
armor: +user.items.armor || 0,
weapon: +user.items.weapon || 0,
head: +user.items.head || 0,
shield: +user.items.shield || 0,
db.users.find(
{$where: "Array.isArray(this.items.pets) || Array.isArray(this.items.eggs) || Array.isArray(this.items.hatchingPotions)"},
{backer: 1, items:1}
).forEach(function(user){
pets: _.reduce(user.items.pets, function(m,v){ m[v] = 5; return m;}, {}),
currentPet: user.items.currentPet ? user.items.currentPet.str : '',
eggs: _.reduce(user.items.eggs, function(m,v){
if (_.isArray(user.items.pets)) {
user.items.pets = _.reduce(user.items.pets, function(m,v){ m[v] = 5; return m;}, {});
}
if (!_.isString(user.items.currentPet)) {
user.items.currentPet = user.items.currentPet ? user.items.currentPet.str : '';
}
if (_.isArray(user.items.eggs)) {
user.items.eggs = _.reduce(user.items.eggs, function(m,v){
if (!m[v.name]) m[v.name] = 0;
m[v.name]++;
return m;
}, {}),
}, {});
}
hatchingPotions: _.reduce(user.items.hatchingPotions, function(m,v){
if (_.isArray(user.items.hatchingPotions)) {
user.items.hatchingPotions = _.reduce(user.items.hatchingPotions, function(m,v){
if (!m[v]) m[v] = 0;
m[v]++;
return m;
}, {}),
}, {});
}
food: {},
user.items.food = {};
user.items.mounts = {};
user.items.currentMount = '';
mounts: {},
currentMount: '',
lastDrop: user.items.lastDrop || {date: new Date(), count: 0}
};
if (user.backer && user.backer.tier && user.backer.tier >= 90) {
user.items.mounts['LionCub-Ethereal'] = true;
}