Shr*_*ran 0 mongoose mongodb node.js
我有一个Schema,其中的balance字段声明如下所示
balance: {
type: Number,
min: 0,
default: 30
}
Run Code Online (Sandbox Code Playgroud)
我将0设置为最小值,以便余额不是负值.但是当我通过更新查询减少余额值时,余额结果为负值.
我的更新查询:
User.update({
_id: mongoose.Types.ObjectId(id)
}, {
$inc: {
balance: -10
}
}, function(error, result) {
// code
});
Run Code Online (Sandbox Code Playgroud)
我在代码中犯了什么错误吗?
默认情况下,mongoose不会在更新调用上进行验证,但是有一个选项.查看mongoose文档: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');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1307 次 |
| 最近记录: |