$ inc of mongoose以防止负值

时间:2016-10-10 17:09:48

标签: javascript node.js mongodb mongoose

我的下面的代码可以很好地从使用$ inc in mongoose的用户中扣除信用额度(适用于增量很有用),但值可能会变为负数,这是我不想要的,任何防止这种情况的选择?

module.exports.deduct_credit = function(subscriber_email,callback){
  Users.findOneAndUpdate(
    {email: subscriber_email},
    {$inc:{credit:price_per_use}},
    {new: true})
    .exec(callback);
}

1 个答案:

答案 0 :(得分:3)

您无法更改$inc行为,但可以在zero

之后执行检查点停止
module.exports.deduct_credit = function(subscriber_email, callback) {
  Users.findOneAndUpdate({
      email: subscriber_email,
      credit:{$gte: 0}
    }, {
      $inc: {
        credit: price_per_use
      }
    }, {
      new: true
    })
    .exec(callback);
}

现在,如果credit值大于zero

,则会更新

希望这对您有用