首页 > 解决方案 > 如何重构猫鼬文档更新代码以返回更新的项目而不是状态

问题描述

我想知道如何重构以下内容以返回更新的文档。

const updated = await item.update(
  { name: data.name, $inc: { seq: 1 } },
  { new: true }
);

它正在更新但返回它(即 的值updated):

{ n: 1, nModified: 1, ok: 1 }

我也刚刚读到save建议使用 using ,但我找不到在预保存挂钩之外使用 save 添加递增逻辑的方法。谢谢。

标签: mongodbmongoose

解决方案


update()方法返回一个包含操作状态的WriteResult文档。

只需尝试findOneAndUpdate()new: true将返回更新的文档,

const updated = await item.findOneAndUpdate(
  { name: data.name }, 
  { $inc: { seq: 1 } },
  { new: true }
);

推荐阅读