在MongoDB中更新特定数组索引处的对象

Sam*_*ahl 4 mongodb nosql mongodb-query

我有一个表格的集合

{ id : 1,
  data: [ [ { name : "alice" }, { name : "bob" } ],
          [ { name : "dan" },   { name : "rob" } ] ] }
Run Code Online (Sandbox Code Playgroud)

并且数组的结构具有意义.我如何更新第一个元素([0] [0])并设置name ="alex".我已经看到很多问题,解决如何更新匹配查询而不是特定元素的数组元素.需要说明的是,更新后,记录应如下所示:

{ id : 1,
  data: [ [ { name : "alex" },  { name : "bob" } ],
          [ { name : "dan" },   { name : "rob" } ] ] }
Run Code Online (Sandbox Code Playgroud)

Bat*_*eam 6

假设您已经创建了具有某种目的的结构,理想情况下查询变得更加困难,您可以通过显式指定索引来更新它:

db.collection.update({"id":1},{$set:{"data.0.0.name":"alex"}})
Run Code Online (Sandbox Code Playgroud)