从 [MongoDb 关于更新的官方文档] ( http://docs.mongodb.org/manual/core/update/#Updating-The%24positionaloperator ),我读到:
以下操作在 bios 集合中查询第一个文档,其中 _id 字段等于 6,awards 数组包含一个子文档元素,其 by 字段等于 ACM。如果找到,update() 方法会更新第一个匹配子文档中的 by 字段:
db.bios.update(
{ _id: 6, 'awards.by': 'ACM' } ,
{ $set: { 'awards.$.by': 'Association for Computing Machinery' } }
)
如果我在这里需要另一个嵌套级别怎么办?也就是说,如果不是:
{ _id: 6, awards: [ { by: 'ACM', prize: 1000}, { by: 'ACS', prize: 2000} ] }
我有类似的东西
{ _id: 6, companies: [ { name: 'yyy', awards: [ { by: 'ACM', prize: 1000}, { by: 'ACS', prize: 2000 } ] } ] }
我想更新 id 为 6、company.name 为“yyy”、company.$.awards.$.by 为“ACM”的那个?这在 MongoDB 中是否可行?
默克。