【发布时间】:2018-05-09 08:22:30
【问题描述】:
我们需要使用与createQueryBuilder 中的search 字符串匹配的“标签”的所有活动记录。
例如:搜索“NEW YORK”,在标签“new、ab、other”中内部搜索“NEW”或“YORK”
我的代码:
$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)。预期结果active AND (tag1 Or tag2)
有什么建议吗?
【问题讨论】:
标签: mongodb symfony query-builder