我有一个架构,其中余额字段的声明如下所示
balance: {
type: Number,
min: 0,
default: 30
}
我将 0 设置为最小值,这样余额就不会为负值。但是当我通过更新查询减少余额值时,余额结果是负值。
我的更新查询:
User.update({
_id: mongoose.Types.ObjectId(id)
}, {
$inc: {
balance: -10
}
}, function(error, result) {
// code
});
我的代码有错误吗?
默认情况下,猫鼬不会在更新调用时进行验证,但是有一个选项可以做到这一点。查看猫鼬文档:http://mongoosejs.com/docs/validation.html http://mongoosejs.com/docs/validation.html(更新验证器)
var opts = { runValidators: true };
Toy.update({}, { color: 'bacon' }, opts, function (err) {
assert.equal(err.errors.color.message,
'Invalid color');
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)