Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个字段相等的MongoDB原则_Mongodb_Doctrine Orm - Fatal编程技术网

两个字段相等的MongoDB原则

两个字段相等的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

如何在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();        

这些问题说明了如何在阿尔法和贝塔不相等的原则之外进行此操作,使用类中的查询表达式通过
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()。它创建了一个条件,但未找到任何结果
db.DocumentName.find({“$and”:[{“alpha”:{“$in”:[2,17,3]},“$where”:“this.alpha===this.beta”}])。排序({“\u id”:-1})我已经检查了存在alpha和beta=(int)3的文档和记录