В приложении 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")));
Ответ следующий:
$mongoCriteria["conditions"] = array("name"=>array("==" => new MongoRegex("/John/i")));
Я не знал, что оператор == будет работать с регулярным выражением, потому что это не упоминалось в документации.
Других решений пока нет …