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

问题描述 投票:0回答:1

我遇到一个问题,我的 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 } );
    
node.js mongoose mongoose-schema
1个回答
0
投票
我在使用 Mongoose 时遇到的问题已在 GitHub 上的此提交中得到修复:

https://github.com/Automattic/mongoose/issues/13158

© www.soinside.com 2019 - 2024. All rights reserved.