Я попросил обновить объект в mongo, (я новичок в NoSQL), поэтому ... я знаю, что это из руководствзадача.
Итак, это объект, который я сохранил в MongoDB:
{
"_id": ObjectID("5cfdc59844d81560d407a2e3"),
"equipo": "2bdca4c0-854d-4f73-bca8-cfb78a31f928",
"jugadores": {
"5361aa85-df9c-4099-8157-fd4d558622cc": {
"tipo": "i",
"estado": false,
"nombre": "name",
"apellido_st": "last_name",
"apellido_nd": "second_last_name",
"email": "email@example.com"
}
}
}
И это «запрос», который я использую для его обновления.
$this->mongo->where(array
(
"equipo" => "2bdca4c0-854d-4f73-bca8-cfb78a31f928",
"jugadores" => "5361aa85-df9c-4099-8157-fd4d558622cc"
))->set(array("estado" => true))->update("torneos_inscripciones");
Очевидно, что ... не работает, и я не могу найти, почему именно проблема, поле estado
не обновляется;вероятно, это проще, чем я, но не могу в это разобраться.Цель состоит в том, чтобы обновить поле estado
на основе jugadores
uuid, в данном случае 5361aa85-df9c-4099-8157-fd4d558622cc
На основе B.Fleming ответ, я внес изменение в код:
$this->mongo->where(array(
"equipo" => "2bdca4c0-854d-4f73-bca8-cfb78a31f928",
"jugadores.5361aa85-df9c-4099-8157-fd4d558622cc" => array(
'$exists' => true
)))->set(array("jugadores.5361aa85-df9c-4099-8157-fd4d558622cc" => array("estado" => true)))->update("torneos_inscripciones");
Теперь проблема в том, что массив становится пустым только с полем estado
.