如何在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
相关产品推荐
相关产品推荐

