В Laravel 5 с MongoDB и jenssegers я пытаюсь обновить поле массива документа.Но это не обновление.
Когда поле содержит Array [2], и я пытаюсь обновить его с помощью Array [1], оно не обновляется.С другой стороны, другие поля документа обновляются корректно.
Я проверил сценарии:
old value | new value | result
---------------------------------
Array(1) | Array(2) | OK
---------------------------------
Array(1) | null | OK
---------------------------------
Array(1) | Array(0) | OK
---------------------------------
Array(2) | Array(1) | NO UPDATE
Мой документ выглядит так:
{
"name": "test",
"default": 0,
"variables": [
{
"name": "responsibilities",
"type": "text"
},
{
"name": "requirements",
"type": "text"
}
]
}
И мой код PHP (я имел делос таким вот пока, но это совсем не элегантно).Чего мне не хватает?
$document->name = $name;
$document->default = $default;
$document->variables = []; // there is neccesity to clear this field first, because overriding with smaller array
$document->save(); // is faulty (for ex. when removing one variable)
$document->variables = $variables;
$document->save();