当前位置:  开发笔记 > 数据库 > 正文

MongoDB:如何更新数组中的嵌入文档

如何解决《MongoDB:如何更新数组中的嵌入文档》经验,为你挑选了1个好方法。

我有以下文件:

{_id: '4eb79ee1e60fc603788e7259',
Name: 'name', 
Subsidiaries: [
  { _id: '4eb79eeae60fc603788e7271',
   Location: 'location1'},
  { _id: 'subid2',
   Location: 'location2'},
]}

我想更新子公司的位置:

db.Departments.update({ "_id" : ObjectId("4eb79ee1e60fc603788e7259"), "Subsidiaries._id" : ObjectId("4eb79eeae60fc603788e7271") }, { "$set" : { "Subsidiaries.Location" : "City" } })

但MongoDb返回错误:"无法使用字符串字段名称[Location]附加到数组



1> RameshVel..:

您必须使用$ poistional运算符来更新嵌入的文档,

db.Departments.update(
     { "_id" : ObjectId("4eb79ee1e60fc603788e7259"),
       "Subsidiaries._id" : ObjectId("4eb79eeae60fc603788e7271") },
     { "$set" : { "Subsidiaries.$.Location" : "City" } }
 )


在我的情况下,这说,**不能使用字符串字段名[$]**附加到数组,虽然我可以看到上面的文档和我的文档是完全相同的.
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有