Search code examples
phpmongodbdoctrine-odmodm

Doctrine MongoDB ODM search in two or more fields


I would like to write a query in Doctrine Mongo ODM that searches by regex in two or more fields. In SQL it would look like:

SELECT * FROM user WHERE name LIKE %search% OR surname LIKE %search%;

I can write a query for one field like this:

$qb->field('surname')->equals(new \MongoRegex('/.*'.$this->search.'.*/i'));

but I'm at a loss when i try to search in more fields.

Thanks for any help


Solution

  • well actually it is quite simple, i found out 5 mins after posting this question

    $qb->addOr($qb->expr()->field('surname')->equals(new \MongoRegex('/.*'.$this->search.'.*/i')));
    $qb->addOr($qb->expr()->field('name')->equals(new \MongoRegex('/.*'.$this->search.'.*/i')));