我有一个我在哪里有字段的模式,类型是一个数字。我将min设置为0,但是将其更改为负数之后。所以这是我的模式。
let balanceChecker = (v)=>{
if(v<0){
return v=0;
}else{
return true;
}
}
const UserSchema = mongoose.Schema ({
email: {type: String,required: true,unique:true},
password: {type: String,required: true,unique:true,validate: passwordValidators},
coins:{type:SchemaTypes.Double,default:1000,min:0,required:balanceChecker}
});
每次单击后,我的应用程序都会生成-50到50之间的随机数。min:0和必需的功能不起作用。这是与DB交互的函数。
User.findOneAndUpdate({email:email},{coins},(err,success)=>{
if(err) return err;
nsp.in(room).emit('takeCoin', { coins });
});
我需要添加一些功能,当硬币数量为负值时,将硬币更改为零。谢谢
答案 0 :(得分:0)
我不确定下面的代码能否正常工作,但是算法应该正确。
因此,您必须使用pre
方法。
UserSchema.pre('save', function(next) {
var user = this;
if (user.coins < 0) {
user.coins = 0;
next();
} else {
next();
}
});
代码应该在您的模型中。