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

如何在MongoDB中更新嵌套数组对象的字段值?

MongoDB 更新数组中嵌套对象的指定字段

针对你提供的文档结构,要把address数组里所有street值为"123"的对象中的town字段更新为"HNO",可以使用MongoDB的arrayFilters特性实现,具体命令如下:

db.collection.updateOne(
  { "_id": ObjectId("5a7e395e20a31e44e0e7e284") },
  { "$set": { "address.$[elem].town": "HNO" } },
  { "arrayFilters": [ { "elem.street": "123" } ] }
)

命令说明:

  • updateOne:仅更新匹配指定_id的单个文档;如果需要批量更新所有包含符合条件数组元素的文档,替换为updateMany即可。
  • $set:指定要更新的字段,address.$[elem].town中的$[elem]是数组过滤器的占位符,对应arrayFilters里定义的规则。
  • arrayFilters:定义数组元素的匹配条件,这里筛选出street等于"123"的数组元素,只有这些元素的town字段会被修改为"HNO"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:20:55