我遇到了Mongoose模式中的set函数的问题,当在更新查询中使用带有负值的$inc操作符时,该函数有时不会被触发。
我有一个Mongoose模式,它为一个字段定义了一个setter函数,该函数应该在将字段保存到数据库之前对其值进行格式化。
const userSchema = new mongoose.Schema({
money: {
balance: {
type: Number,
set: (v) => Number(v)?.toFixed(4),
default: 0,
},
},
});
但是,当我在findByIdAndUpdate查询中使用$inc操作符将字段更新为负值时,不会调用set函数,值也不会格式化:
await User.findByIdAndUpdate(userId, {
$inc: {
'money.balance': -1.3245479576,
},
},
{ runValidators: true }
);
1条答案
按热度按时间6qfn3psc1#
我在使用Mongoose时遇到的问题已经在GitHub上的这个提交中得到了修复:https://github.com/Automattic/mongoose/issues/13158