Php 如何在Doctrine/Mongo QueryBuilder搜索中忽略搜索字段?
我有一个用于搜索的Mongo ODM查询,其中一个字段(属性类型)有一个“All”值,搜索应该忽略其余的值Php 如何在Doctrine/Mongo QueryBuilder搜索中忽略搜索字段?,php,mongodb,symfony,doctrine-orm,Php,Mongodb,Symfony,Doctrine Orm,我有一个用于搜索的Mongo ODM查询,其中一个字段(属性类型)有一个“All”值,搜索应该忽略其余的值 $query = $dm->createQueryBuilder('SomeBundle:Listing') ->select('id', 'title','saleOrRent') ->field('residentialOrCommercial')->equals($residentialOrCommercial) ->fie
$query = $dm->createQueryBuilder('SomeBundle:Listing')
->select('id', 'title','saleOrRent')
->field('residentialOrCommercial')->equals($residentialOrCommercial)
->field('propertyType')->equals($propertyType)
->getQuery();
但是,当有人在propertyType上选择“All”时,我可以进行精确的文本匹配。我如何在上面的查询中解释?我的意思是,当有人选择“All”时,我希望查询完全忽略“propertyType”字段并返回所有值
我知道我不是非常清楚,但我正在努力做到
有什么建议吗?只要做:
$qb = $dm->createQueryBuilder('SomeBundle:Listing')
->select('id', 'title','saleOrRent')
->field('residentialOrCommercial')->equals($residentialOrCommercial);
if ($propertyType != 'All') {
$qb->field('propertyType')->equals($propertyType);
}
$query = $qb->getQuery();
非常感谢你在这方面帮了我的忙。我真的很感激。