2016-10-10 4 views
0

私の下のコードは、$ incをmongooseで使用している人からクレジットを差し引くだけで良い(それは増分のために働く)が、値はマイナスになることがあります、それを防ぐための任意のオプションが欲しいですか?

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

あなたは 'しかし、値がマイナスになることができます'とはどういう意味ですか?どの場所で制限したいのですか? – abdulbarik

+0

@abdulbarik現在の値が0で、price_per_useが-10の場合、-10になります。クレジットは-10でなく、最小値は0です。これをどのように制限するか? –

答えて

0

あなたは$inc動作を変更することはできませんが、credit値が大きいことzero

希望があれば、それは更新します今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); 
} 

後にそれを停止するチェックポイントを行うことができますこれはあなたのために働くことができます

+0

なぜ '$ gte'ですか?ユーザーに10があり、彼は10を使用していると言いますが、彼にはフォン0を追加する権限が与えられています。 –

+0

はい、あなたはあなたの問題を処理する方法を与えることができます、それはあなたの要件の方法でそれを使用することができます – abdulbarik

+0

それは$ gtではなく$ gteですか? –

関連する問題