You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在调用Mongoose save()方法更新行时停止生成版本记录

解决mongoose-version在save时停止生成版本记录的问题

我来帮你搞定这个问题!你之前尝试的写法没生效,大概率是两个小问题:用错了调用对象,或者参数值搞反了。下面给你详细的正确操作方式:

首先,mongoose-version插件本身就支持在调用save()时临时抑制版本记录的生成,但注意必须是针对文档实例调用save,而不是直接用collection,并且参数要设置为true才会生效(你之前写的false是默认行为,不会抑制)。

正确示例代码

// 1. 先获取要更新的文档实例
const targetDoc = await YourModel.findById('文档ID');

// 2. 修改文档内容
targetDoc.yourField = '新的内容';

// 3. 调用save时传入抑制版本的选项
await targetDoc.save({ suppressVersionIncrement: true });

这样执行后,这次save操作就不会生成新的版本记录了。

额外注意事项

  • 如果你的mongoose-version版本比较旧,可能需要用noVersion作为参数名(不过这个是比较早期的用法,现在主流版本都是用suppressVersionIncrement),如果上面的代码没生效,可以试试替换成{ noVersion: true }。
  • 确保你在模型初始化时正确配置了mongoose-version插件,比如:
    const yourSchema = new mongoose.Schema({ /* 你的字段定义 */ });
    // 初始化版本控制插件
    yourSchema.plugin(version, {
      collection: 'yourModelVersions', // 版本存储的集合名
      // 其他全局配置...
    });
    const YourModel = mongoose.model('YourModel', yourSchema);
    

这样应该就能解决你的问题啦!

内容的提问来源于stack exchange,提问作者Abtisam Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:12:39