使用$inc时未调用Mongoose模式设置器

ubbxdtey  于 2023-03-18  发布在  Go
关注(0)|答案(1)|浏览(111)

我遇到了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 }
);
6qfn3psc

6qfn3psc1#

我在使用Mongoose时遇到的问题已经在GitHub上的这个提交中得到了修复:https://github.com/Automattic/mongoose/issues/13158

相关问题