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

如何通过Mongoose删除MongoDB文档中的指定字段

实现方案

删除单篇文档内的指定字段,需使用MongoDB的$unset更新操作符配合更新类方法实现,deleteOne是用于删除整份文档的接口,不适用该场景。

原生Mongo Shell写法

db.users.updateOne(
  // 匹配目标文档的查询条件
  { _id: "12345678" },
  {
    // $unset字段的值可以是任意非空值,填写1或者空字符串都可以
    $unset: {
      firstName: "",
      lastName: "",
      email: "",
      website: "",
      skills: "",
      dob: "",
      createdAt: ""
    }
  }
)

Mongoose 写法(你用到的userModel场景)

基础更新写法

await userModel.updateOne(
  { _id: id },
  {
    $unset: {
      firstName: 1,
      lastName: 1,
      email: 1,
      website: 1,
      skills: 1,
      dob: 1,
      createdAt: 1
    }
  }
)

需要返回更新后文档的写法

const updatedUser = await userModel.findByIdAndUpdate(
  id,
  {
    $unset: {
      firstName: 1,
      lastName: 1,
      email: 1,
      website: 1,
      skills: 1,
      dob: 1,
      createdAt: 1
    }
  },
  { new: true } // 该配置项会返回修改后的文档,默认返回修改前的旧文档
)

注意:你提供的示例文档中网站字段拼写为webisite,实际执行时请根据你生产环境的真实字段名调整,避免删除失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:24:00