It is possible for doctrine2 ODM to create the following query?
db.Product.find({ \"$or\": [ { \"name\": new RegExp(\"test*\", \"i\") }, { \"tags\": ne
/**
* Adds an "or" expression to the current query.
*
* You can create the expression using the expr() method:
*
* $qb = $this->createQueryBuilder('User');
* $qb
* ->addOr($qb->expr()->field('first_name')->equals('Kris'))
* ->addOr($qb->expr()->field('first_name')->equals('Chris'));
*
* @param array|QueryBuilder $expression
* @return Builder
*/
/**
* Adds an "and" expression to the current query.
*
* You can create the expression using the expr() method:
*
* $qb = $this->createQueryBuilder('User');
* $qb
* ->addAnd($qb->expr()->field('first_name')->equals('Kris'))
* ->addAnd($qb->expr()->field('first_name')->equals('Chris'));
*
* @param array|QueryBuilder $expression
* @return Query
*/
A small example in addition to theory:
Query in meta-language
:
<condition1> AND (<field1 == value1> OR <field2 == value2>)
Query with Doctrine's QueryBuilder
:
$queryBuilder
->addAnd(<condition1>)
->addAnd(
$queryBuilder
->expr()
->addOr(
$queryBuilder
->expr()
->field('field1')
->equals('value1')
)->addOr(
$queryBuilder
->expr()
->field('field2')
->equals('value2')
)
);