我们需要使用与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)
有什么建议吗?
答案 0 :(得分:1)
替换此
foreach ($searchArr as $searchVal) {
$query->addOr(
由此
foreach ($searchArr as $searchVal) {
$query->addAnd(