У EMongoCriteria нет метода с именем & quot; имя & quot;

В приложении yii я создаю EMongoCriteria из массива, как показано ниже:

$mongoCriteria["conditions"] = array("name"=>new MongoRegex("/John/i"));
$criteria = new EMongoCriteria($mongoCriteria);

Как я понял, нет правильного способа сделать следующий регистр нечувствительным:

$mongoCriteria["conditions"] = array("name"=>array("==" => "John"));

Вот почему я использую MongoRegex. Также мне нужно сделать так, чтобы он «содержал» похожий на оператор LIKE в MySQL. По какой-то причине я должен сначала создать условия в массиве, поэтому я не могу использовать это:

$criteria->name = new MongoRegex('/John/i');

Проблема в том, что он не работает и показывает эту ошибку:

EMongoCriteria does not have a method named "name"

Пожалуйста, есть идеи?

Я пробовал это также, та же проблема:

$mongoCriteria["conditions"] = array("name"=>array("regex" => new MongoRegex("/John/i")));

1

Решение

Ответ следующий:

$mongoCriteria["conditions"] = array("name"=>array("==" => new MongoRegex("/John/i")));

Я не знал, что оператор == будет работать с регулярным выражением, потому что это не упоминалось в документации.

0

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

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