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

MongoDB如何用$unset移除嵌套数组中的字段?

解决MongoDB嵌套数组字段移除问题

你的文档结构里computers和users都是数组,直接用"computers.users.name"的路径无法让MongoDB定位到数组内的元素,所以modifiedCount为0。要移除所有嵌套数组里的name字段,需要使用MongoDB的**数组通配符$[]**来遍历所有数组元素,具体写法如下:

db.collection.updateMany(
  {},
  { $unset: { "computers.$[].users.$[].name": "" } }
)

原理说明:

  • computers.$[]表示匹配computers数组里的所有元素
  • 嵌套的users.$[]表示匹配每个computers元素下users数组里的所有元素
  • 最终$unset会移除所有符合路径的name字段

注意:这个写法要求MongoDB版本在3.6及以上,该版本开始支持嵌套数组的通配符操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:05:35