Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- `Para cada "lost user":`
- lostUsers.forEach(function(user){
- `Buscas su home (que fue alterado)` *Aquí tengo duda si "user" es el id o es el objeto del usuario*
- var currentHome = db.home.findOne({userId:user});
- `Buscas su home en el backup`
- var backedUpHome = db.homeBackup.findOne({userId:user});
- `Buscas el mismo home del backup pero lo guardas en otra segunda variable`
- var restoredHome = db.homeBackup.findOne({userId:user});
- `Si el home con "userId" no existe:`
- if(currentHome == null){
- print("not found");
- //No se registro, just update
- //Find in backup
- //db.home.update({userId:{$exists:false}},tojson(restoredHome)) //UNCOMMENT
- `Reemplazas el home inexistente por el home restaurado`
- db.home.save(restoredHome);
- `Si el home con "userId" existe:`
- }else{
- print('found');
- //Usuario se registro de nuevo (merge)
- `Reemplazas todos estos campos por los del home restaurado`
- var merge = {
- $set : {
- signUpDate : restoredHome.signUpDate,
- teamName : restoredHome.teamName,
- fanOf : restoredHome.fanOf,
- createdAt : restoredHome.createdAt,
- knockout : restoredHome.knockout,
- lineUpHistory : restoredHome.lineUpHistory,
- points : restoredHome.points,
- rankings : restoredHome.rankings,
- isRegistred : restoredHome.isRegistred,
- roundUpdates : restoredHome.roundUpdates,
- myAdminGroups : restoredHome.myAdminGroups
- }
- };
- //Merge groups
- `Si hay grupos en el home existente:`
- if(currentHome.groups.length > 0){ // necessary??
- currentHome.groups.forEach(function(group){
- var found = false;
- restoredHome.groups.forEach(function(groupBackup){
- if(String(group.groupId) == String(groupBackup.groupId)){
- //print('group ' + group + " found");
- found = true;
- }
- });
- if(!found){
- //print('group ' + group + " not found");
- restoredHome.groups.push(group);
- }
- });
- }
- `Reemplazas los grupos del home existente por los grupos del home restaurado más los que añadiste`
- merge.$set.groups = restoredHome.groups;
- //Merge groups g18
- if(currentHome.groupsG18.length > 0){ // necessary??
- currentHome.groupsG18.forEach(function(group){
- var found = false;
- restoredHome.groupsG18.forEach(function(groupBackup){
- if(String(group.groupId) == String(groupBackup.groupId)){
- found = true;
- }
- });
- if(!found){
- restoredHome.groupsG18.push(group);
- }
- });
- }
- `Reemplazas los grupos g18 del home existente por los grupos del home restaurado más los que añadiste`
- merge.$set.groupsG18 = restoredHome.groupsG18;
- //print(tojson(merge.$set.groups));
- `Haces el update del home existente` *Aquí no falta { multi: true } ?*
- db.home.update({userId:user}, merge) //UNCOMMENT
- }
- //Save process
- `Buscas nuevamente el home con "userId"`
- var finalHome = db.home.findOne({userId:user});
- `Y en el collection "mergeResult" guardas los tres homes, el alterado, el del backup y el restaurado junto con el "userId"`
- db.mergeResult.insert({
- "userId" : user,
- "backedup" : backedUpHome,
- "messedUp" : currentHome,
- "merged" : finalHome
- })
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement