Как я могу использовать регулярные выражения с Mongodb ODM Doctrine?

Я пытаюсь использовать регулярные выражения для запроса Mongodb, используя ODM Mongodb Doctrine для Symfony 2.

Я знаюPHP драйвер Монго может сделать это, Однако я не знаю, как это сделать с помощью Doctrine.

Я использую тот же класс? Как я могу ссылаться на MongoRegex из Symfony?

 Anuja Patil13 июл. 2016 г., 13:15
Для тех, кто не хочет использовать MongoRegex, поскольку это устарело, может попробовать это решение, MongoRegex был определен в соответствии сphp.net/manual/en/class.mongoregex.php stackoverflow.com/questions/36761669/…  Вот почему я дал этот ответ для тех, кто может беспокоиться об этом.

Ответы на вопрос(2)

Решение Вопроса

Доктрина пользователь список рассылки. Вы можете использовать\MongoRegex Класс прямо в ваших запросах ODM:

$documentRepository->findBy(array(
    'foo' => new \MongoRegex('/^bar/'),
));

Или, используя построитель запросов:

$queryBuilder->field('foo')->equals(new \MongoRegex('/^bar/'));

Имейте в виду, что шаблоны регулярных выражений, учитывающие регистр, могут использовать индексы наиболее эффективно. Это обсуждается более подробно вМонго документы.

 20 апр. 2016 г., 13:22
Мне нужно использовать новый класс MongoDB \ BSON \ Regex, так как MongoRegex теперь не рекомендуется. Как я могу использовать это в проекте Symfony2. var_dump ($ регулярное выражение);php.net/manual/en/mongodb-bson-regex.construct.php

Как использовать зарезервированные символы в createQueryBuilder и MongoRegix,

Кроме того, в то время как / ^ a /, / ^ a./, and /^a.$ / соответствует эквивалентным строкам, они имеют разные характеристики производительности. Все эти выражения используют индекс, если существует соответствующий индекс; однако / ^ а./, and /^a.$ / медленнее. / ^ a / может остановить сканирование после сопоставления префикса. Mongo Docs Regix

Ваш ответ на вопрос