我有一个用于搜索的Mongo ODM查询,其中一个字段(属性类型)具有"全部"值,搜索应忽略其余值。
$query = $dm->createQueryBuilder('SomeBundle:Listing')
->select('id', 'title','saleOrRent')
->field('residentialOrCommercial')->equals($residentialOrCommercial)
->field('propertyType')->equals($propertyType)
->getQuery();
我可以进行精确的文本匹配,但是当有人在属性类型上选择"全部"时,我如何在上面的查询中解释?我的意思是,当有人选择"全部"时,我希望查询完全忽略"属性类型"字段并返回所有值。
我知道我不是很清楚,但我正在努力做到。
有什么建议吗?
只需执行以下操作:
$qb = $dm->createQueryBuilder('SomeBundle:Listing')
->select('id', 'title','saleOrRent')
->field('residentialOrCommercial')->equals($residentialOrCommercial);
if ($propertyType != 'All') {
$qb->field('propertyType')->equals($propertyType);
}
$query = $qb->getQuery();