mongodb php manager $ bulk несколько полей

Мне нужно обновить некоторые поля в документе Монго. Проблема, с которой я сталкиваюсь, некоторые могут быть нулевыми или пустыми, поэтому их не должно быть в списке $ set. Итак, я строю объединенную строку этих полей с допустимыми значениями и присваиваю ее переменной.

if ($value1 > '') {
$setFields = $setFields.", 'key1'".' => '.'$key1';
}
if ($value2 > '') {
$setFields = $setFields.", 'key2'".' => '.'$key2';
}

так далее…

$setFields = substr($setFields, 2);
$bulk->update(['id'=>$Id],['$set'=>[$setFields]);

и я получаю ошибку: модификаторы работают с полями, но вместо этого мы нашли массив типов. Например: {$ mod: {: …}} не {$ set: [«‘key1’ => $ value1, ‘key2’ => $ value2»]}

ошибка очевидна: конструкция должна быть

{$set: [ 'key1' => $value1, 'key2' => $value2 ]}

а не (php добавляет начало и конец двойных кавычек вокруг строки)

{$set: [ "'key1' => $value1, 'key2' => $value2" ]}

если я запускаю запрос, как это, он работает нормально:

$bulk->update(['id'=>$Id],['$set'=>['key1' => $value1, 'key2' => $value2]);

если заменить список полей на переменную $ setFields, он обрывается с вышеуказанной ошибкой

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector