或者条件在createQueryBuilder中的AND条件取决于条件

时间:2018-05-09 08:22:30

标签: mongodb symfony query-builder

我们需要使用与Q中的search字符串匹配的“tag”的所有有效记录。

对于Ex:搜索“NEW YORK”,在内部搜索标签“new,ab,other”中的“NEW”或“YORK”

我的代码:

createQueryBuilder

它会给出结果$query = $this->createQueryBuilder(); $query->field('status')->equals("active"); if (isset($params["search"]) && !empty($params["search"])) { $searchArr = explode(" ", $params["search"]); foreach ($searchArr as $searchVal) { $query->addOr( $query->expr()->addOr($query->expr()->field('tags')->equals(new \MongoRegex('/.*' . $searchVal . '.*/'))) ); } } 。预期结果active OR (tag1 Or tag2)

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

替换此

foreach ($searchArr as $searchVal) {
    $query->addOr(

由此

foreach ($searchArr as $searchVal) {
    $query->addAnd(