В приложении 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")));
Я не знал, что оператор будет работать с регулярным выражением, потому что он не упоминался в документации.