我有模特"用户"使用anttribute"要求",这是包含许多其他属性的对象,意味着另一个级别的要求。例如:
User: {
name: "Jack",
requirements: {
animals: {
panda: 1,
lion: 2
},
stock: {
water: 3
}
}
}
当用户购买动物或水桶时,我会从需求中减少购买的物品,因此最终,用户的所有属性都等于零。当用户完成此操作时,他会升级并设置新的需求对象,表示另一个级别的新需求:
user.requirements = undefined;
// Line A
user.requirements = {
animals: { fox: 1}
}
user.save();
但是当我这样做时,那么在数据库中将以前需求对象的需求保持为零,所以代替上面的对象就是这个对象:
User: {
name: "Jack",
requirements: {
animals: {
panda: 0,
lion: 0,
fox: 1
},
stock: {
water: 0
}
}
}
我需要用零除掉要求,但只有当我升级时,不是当我普通保存模型时(例如用户需要1个panad,用户购买1个熊猫,它会将熊猫需求减少1并保存数量需求) 0 - 没关系。没有什么是好的,当用户完成所有要求 - 设置为0,并加载新的级别要求 - 加载后仍然有一些0。
也许我会在A线保存模型?我认为保存两次并不好 - 我需要导致保存的异步性质。有没有更简单或更好的解决方案?
示例中的快速问题 我需要购买1只熊猫和1桶水才能升级。所以我买了1只熊猫。对熊猫的要求现在为0 - 没关系。然后我买了1桶水。现在我完成了所有要求(它们全部为0),所以我升级 - 将要求更改为新要求。更改要求后,不得为任何0,特别是以前的要求不得为0.
答案 0 :(得分:0)
我通过将requirements属性设置为undefined,然后将其保存并最终将需求对象设置为所需对象来解决此问题,例如:
gets()