如何在Doctrine ODM中创建where条件以仅查找两个字段相等的文档?
存在一个包含两个int字段alpha
和beta
的文档,我想选择这两个字段相等的所有文档。
我尝试过以下操作,但没有返回任何结果:
$qb = $this->createQueryBuilder();
$qb
->field('alpha')->in($alphaIds)
->where('this.alpha === this.beta')
->sort('id', 'DESC');
return $qb->getQuery()->execute();
此问题说明如何在Doctrine之外进行此操作,其中alpha和beta不相等https://stackoverflow.com/a/8433182/1283381
答案 0 :(得分:0)
使用 Doctrine\MongoDB\Query\Expr
类中的查询表达式,通过 expr()
where()
表达式>方法如下:
$qb = $this->createQueryBuilder();
$qb->addAnd(
$qb->expr()
->field('alpha')->in($alphaIds)
->where('this.alpha === this.beta')
)
->sort('id', 'DESC');
return $qb->getQuery()->execute();