4

私はこのようなmongodbのコレクションを持っています。

"_id" : ObjectId("554c5397ccfff21e103c9869"),
"name" : "test",
"color" : [
    "552ced22ccfff2d8183c986a_Jellow",
    "551fdd24ccfff2362e3c9869_test"
],
"updated_at" : ISODate("2015-05-08T06:11:35.303Z"),
"created_at" : ISODate("2015-05-08T06:11:35.303Z")

配列の色の値を 1 つだけ更新したいのですが、配列を更新しようとすると、色の配列からすべての値が削除され、新しい値に置き換えられます。これがコードです。(私はLARAVEL用のJESSENGER MONGODBパッケージを使用しています

$query->where($field,'regexp','/^('.$id.')_.*/')->update([$field=>$id.'_'.$name]);

どうすればいいですか?

4

3 に答える 3

0

次のようにデータを変更しないでください。

"_id" : ObjectId("554c5397ccfff21e103c9869"),
"name" : "test",
"color" : [
    { "id":"552ced22ccfff2d8183c986a", "name":"Jellow"},
    { "id":"551fdd24ccfff2362e3c9869", "name":"test"}
],
"updated_at" : ISODate("2015-05-08T06:11:35.303Z"),
"created_at" : ISODate("2015-05-08T06:11:35.303Z")

その後、IDで要素を更新できます。

于 2015-05-08T07:55:37.187 に答える