2017-05-21 11 views
0

私は、文書のMongoDBでネストされたパラメータを更新しよう:MongoDBのネストされたパラメータを更新しますか?

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

結果では、私はエラーを取得する:

​​がある

zero-length keys are not allowed, did you use $ with double quotes?

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

あなたの$ idの値は何ですか、そして$の値は –

+0

です。phpは変数と思われるものを '' $ set "'として補間しようとしています。一重引用符を使用して文字列リテラル ''$ set''を渡す –

+0

このクエリは動作しますが、新しいパラメータをドキュメントに挿入しなおして更新します – Blablacar

答えて

0

使用dot notation /上書きフィールドを追加します埋め込みドキュメント

何か別の方法として

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

$parameter_id = "5920d086470e6cb30e3c986c";

のように、埋め込まれた配列として parametersを定義すると、あなたは $push埋め込まれた文書を全体挿入することができます。

関連する問題