两个字段相等的MongoDB原则
如何在ODM原则中创建where条件以仅查找两个字段相等的文档 一个文档存在两个int字段两个字段相等的MongoDB原则,mongodb,doctrine-orm,Mongodb,Doctrine Orm,如何在ODM原则中创建where条件以仅查找两个字段相等的文档 一个文档存在两个int字段alpha和beta,我想选择这两个字段相等的所有文档 我尝试了以下操作,但未返回任何结果: $qb = $this->createQueryBuilder(); $qb ->field('alpha')->in($alphaIds) ->where('this.alpha === this.beta') ->so
alpha
和beta
,我想选择这两个字段相等的所有文档
我尝试了以下操作,但未返回任何结果:
$qb = $this->createQueryBuilder();
$qb
->field('alpha')->in($alphaIds)
->where('this.alpha === this.beta')
->sort('id', 'DESC');
return $qb->getQuery()->execute();
这些问题说明了如何在阿尔法和贝塔不相等的原则之外进行此操作,使用类中的查询表达式通过
expr()
方法创建表达式,如下所示:
$qb = $this->createQueryBuilder();
$qb->addAnd(
$qb->expr()
->field('alpha')->in($alphaIds)
->where('this.alpha === this.beta')
)
->sort('id', 'DESC');
return $qb->getQuery()->execute();
这将导致在没有任何条件的情况下执行,即
db.DocumentName.find()代码>我刚刚展示了突出的部分,然后您可以像返回$qb->getQuery()->execute()一样返回查询执行代码>是的,我仍然包括$qb->getQuery()->execute()代码中的code>。它创建了一个条件,但未找到任何结果db.DocumentName.find({“$and”:[{“alpha”:{“$in”:[2,17,3]},“$where”:“this.alpha===this.beta”}])。排序({“\u id”:-1})代码>我已经检查了存在alpha和beta=(int)3的文档和记录