Php 如何在createQueryBuilder和MongoRegix中使用保留字符

Php 如何在createQueryBuilder和MongoRegix中使用保留字符,php,mongodb,doctrine-orm,zend-framework2,odm,Php,Mongodb,Doctrine Orm,Zend Framework2,Odm,我正在使用ZF2 Doctrine2 ODM和MongoRegix进行搜索,但问题是我无法搜索那些包含括号的术语,如BS(荣誉)无法搜索。我的问题是 $q->addOr($q->expr()->field($columns[$i]['field'])->equals(new \MongoRegex('/.*BS(Hons).*/i'))); 有什么建议吗?保留字符可以在MongoRegx中使用 /.*BS/(Hons/).*/i 查询将如下所示 $q->addO

我正在使用ZF2 Doctrine2 ODM和MongoRegix进行搜索,但问题是我无法搜索那些包含括号的术语,如BS(荣誉)无法搜索。我的问题是

$q->addOr($q->expr()->field($columns[$i]['field'])->equals(new \MongoRegex('/.*BS(Hons).*/i')));

有什么建议吗?

保留字符可以在MongoRegx中使用

/.*BS/(Hons/).*/i
查询将如下所示

$q->addOr($q->expr()->field($field)->equals(new \MongoRegex('/.*BS/(Hons/).*/i')));

假设Parantechis用于条令中的分组。如果ORM中的分组使用括号()没有错,您可以检查参考号,这是否也意味着ODM?因此,通过(荣誉/)不会导致被解读为BS(荣誉)+1(如果它起作用)