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

Mongoose 如何更新嵌套对象指定字段且不删除其余原有属性?

你遇到的问题是嵌套字段更新的写法错误导致的,正确写法如下:

Model.updateMany(req.query, { $set: { 'remindTime.date': '2021-09-28' } })

错误原因说明

  • 第一种写法:直接给remindTime字段赋值为仅包含date属性的对象,会直接覆盖remindTime的原有完整结构,因此原有time属性会被清空。
  • 第二种写法:$set操作符的层级放错,且没有用正确的方式指定嵌套字段,语法结构本身也存在错误,无法实现精准更新嵌套属性的效果。

原理说明

MongoDB 支持通过点操作符定位嵌套的子字段,搭配$set操作符使用时,只会更新你指定的子字段,不会修改同一层级下的其他属性,完全可以保留原有remindTime.time的值不需要额外操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:39:03