在mongodb集合上执行简单的功能而不将其存储到内存中?

时间:2015-09-03 14:16:19

标签: node.js mongodb

我的mongo db集合中有1000个用户,我想对它们进行一些更新而不将它们加载到内存中,更新是那些:

在每个用户对象中,我有以下内容:

user : {
    money : 100,
    skill : 50,
    stamina : 50
}

我想做以下简单的操作:

 user.skill            = Math.max(0, user.skill + 50);
 user.stamina          = Math.max(0,Math.min(100, user.stamina + 20));
 user.moral              = Math.max(0,Math.min(100, user.moral + 10));

但是,再次,更新,但不是将它们存储在内存中,是否有可能进行这种检查? (也许更复杂的事情?)

1 个答案:

答案 0 :(得分:1)

您应该查看Mongodb中的更新运算符: http://docs.mongodb.org/manual/reference/operator/update/

这些运算符可用于更新文档中的字段而无需将文档加载到客户端,因此它看起来适合您的情况:)

您需要:$inc$min$max