如何在Doctrine的Mongodb ODM中使用正则表达式?

cha*_*ory 12 php doctrine mongodb doctrine-odm

我正在尝试使用正则表达式在Symfony 2上使用Doctrine的Mongodb ODM来查询Mongodb.

我知道PHP mongo驱动程序可以做到这一点.但是,我不知道如何用Doctrine做到这一点.

我使用同一个班级吗?如何在Symfony中引用MongoRegex?

jmi*_*ola 29

这是在不久前在学说用户邮件列表上出现的.您可以\MongoRegex直接在ODM查询中使用该类:

$documentRepository->findBy(array(
    'foo' => new \MongoRegex('/^bar/'),
));
Run Code Online (Sandbox Code Playgroud)

或者,如果使用查询构建器:

$queryBuilder->field('foo')->equals(new \MongoRegex('/^bar/'));
Run Code Online (Sandbox Code Playgroud)

请记住,前端锚定,区分大小写的正则表达式模式将能够最有效地使用索引.这在Mongo文档中有更详细的讨论.

  • 我需要使用新的 MongoDB\BSON\Regex 类,因为 MongoRegex 现在已被弃用。我如何在 Symfony2 项目中使用它。var_dump($正则表达式); http://php.net/manual/en/mongodb-bson-regex.construct.php (2认同)