我想对查询进行不区分大小写的检查。 以前我在this ticket
中使用MongoRegex作为描述但是根据Php.net,现在已经弃用了,所以不能使用它,他们建议使用MongoDB\BSON\Regex,但我不确定如何在symfony2中使用它。但如果我尝试使用它,它会抛出类未找到的异常。
请告诉我可能的解决方案。 或者在ODM自定义查询中进行不区分大小写检查的任何其他方法(可能在字段函数中)
非常感谢你。
答案 0 :(得分:1)
我编写了自定义查询,如下所示:
$name = 'abc'
$db->createQuerBuilder()
->distinct('username')
->field('username')->where('function(){ var pattern = /^' . $name . '$/i; return pattern.test(this.username); }')
->getQuery()
->execute()
->getSingleResult();
我使用了mongodbs,其中函数具有JavaScript测试功能。 Reference link
答案 1 :(得分:0)
如果使用curl --insecure --digest 'https://password@localhost:9993/management' --header "Content-Type: application/json" -d '{"deployment":"bob","operation":"read-attribute","name":"status","json.pretty":1}'
会产生“未找到类”异常,那么您使用的是旧版驱动程序,需要使用MongoDB\BSON\Regex
。正如您所见,整个驱动程序已被弃用,但您仍然可以使用它,它仍然是ODM官方支持的唯一一个(如果与mongo-php-adapter等polyfill结合使用,则可以使用新驱动程序。)
因此,要回答您的问题,不区分大小写的搜索将会显示(给定\MongoRegex
是查询构建器):
$qb