Php 如何将正则表达式与Doctrine';是Mongodb ODM吗?

Php 如何将正则表达式与Doctrine';是Mongodb ODM吗?,php,mongodb,doctrine,doctrine-odm,Php,Mongodb,Doctrine,Doctrine Odm,我试图使用正则表达式在symfony2上使用Doctrine的Mongodb ODM查询Mongodb 我知道答案。然而,我不知道如何用教条做到这一点 我使用同一个类吗?如何从Symfony中引用MongoRegex?这是不久前在邮件列表中出现的。您可以在ODM查询中直接使用\MongoRegex类: $documentRepository->findBy(array( 'foo' => new \MongoRegex('/^bar/'), )); 或者,如果使用查询生成器

我试图使用正则表达式在symfony2上使用Doctrine的Mongodb ODM查询Mongodb

我知道答案。然而,我不知道如何用教条做到这一点


我使用同一个类吗?如何从Symfony中引用MongoRegex?

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

$documentRepository->findBy(array(
    'foo' => new \MongoRegex('/^bar/'),
));
或者,如果使用查询生成器:

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

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

您可以按照有关堆栈溢出的问题了解详细信息 ,

此外,虽然/^a/、/^a./、和/^a.$/匹配等效字符串,但它们具有不同的性能特征。如果存在适当的索引,所有这些表达式都使用索引;但是,/^a./和/^a.$/速度较慢/^a/匹配前缀后可以停止扫描。

我需要使用新的MongoDB\BSON\Regex类,因为MongoRegex现在已被取消。我如何在Symfony2项目中使用它。var_dump($regex);对于那些不习惯使用MongoRegex的人,因为MongoRegex已经被弃用了,可以尝试这个解决方案。MongoRegex已经被弃用了,这就是为什么我为那些可能对此有顾虑的人给出了这个答案。