更新MongoDB中的嵌套参数?

时间:2017-05-21 00:22:16

标签: php mongodb

我尝试更新文档MongoDb中的嵌套参数:

    $this->collection->update(
   ["prototype_id" => $id],
   ["$set" => ["parameters" => $newdata]],
   ["upsert" => true, "multiple" => true]);

结果我收到错误:

  

不允许使用零长度密钥,您是否使用带双引号的$?

$newdata的位置:

array:1 [
  "5920d086470e6cb30e3c986c" => array:1 [
    "Acceleration" => "2"
  ]
]

1 个答案:

答案 0 :(得分:0)

使用dot notation在嵌入文档中添加/覆盖字段。

这样的东西

$parameter_id = "5920d086470e6cb30e3c986c";

['$set' => ["parameters.".$parameter_id => ["Acceleration" => "2"]]];

或者,将parameters定义为嵌入式数组,您可以$push插入整个嵌入式文档。