我的下面的代码可以很好地从使用$ 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);
}
答案 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
希望这对您有用