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

mongoose.findByIdAndUpdate()无法更新文档问题求助

问题解决:GraphQL更新MongoDB产品名称失败

核心问题是你的Resolver和TypeDef的参数名不匹配:

  • TypeDef中定义的mutation参数是name,但Resolver里解构的是newName,导致你传入的新名称根本没被正确接收,自然无法更新数据库。

两种修复方案任选其一:

方案1:修改TypeDef,统一参数名为newName

updateProductName(id: String!, newName: String!): Product!

方案2:修改Resolver,使用TypeDef中定义的name参数

updateProductName: async (parent, { id, name }) => {
  const product = await Product.findByIdAndUpdate(
    id,
    { name }, // 对象简写,等同于{ name: name }
    { new: true }
  );

  return product;
}

额外检查点

  • 确认MongoDB的Product模型中name字段没有设置immutable: true等不可修改的限制
  • 确保调试时传入的id对应数据库中真实存在的文档

内容的提问来源于stack exchange,提问作者Dan Gray

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:02:01