2016-10-10 74 views
0

我下面的代码工作得很好扣除信贷从猫鼬使用$用户INC(它的增量是很大的工作),但值可以变成负数这是我做的不想要,有什么选择来防止呢?

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

你是什么意思',但该值可以成为negative'?你想在哪个地方限制? – abdulbarik

+0

@abdulbarik如果我的当前值是0并且我的price_per_use是-10,那将是-10。信用不应该是-10,最小值是0.如何限制发生? –

回答

0

你不能改变$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

希望这将更新这可以为你工作

+0

为什么不是'$ gte'?说用户有10个,他用了10个,还是可以给他权力添加fom 0.对吗? –

+0

是的,你可以使用只是给你一个方法来处理你的问题,你可以使用它在你的要求方式 – abdulbarik

+0

所以它不是$ GT,但$ gte? –