如何访问MongoDB ODM中彼此引用的文档字段



让我们假设我有两个文档

用户和购买。所有购买都有对用户的参考,用户中有一个现场性别。

我想选择由男性客户购买的产品。所以我有性别,我想迭代购买并定义他们的"性别"。

类似的东西

public function findByGender()
{
$query =
        $this->createQueryBuilder()
        ->field(""Purchase->User->gender"")->equals('male')
        ->getQuery()
        ;

}

,但是当然,"……"之间的代码不起作用。我想知道是否可能,如果是,我该怎么做?

您需要在2个查询中将此查询分开。首先选择所有男性用户,然后将这些用户传递给第二查询。我建议您脱水查询,仅选择必需。

$users = $this->createQueryBuilder()
    ->hydrate(false)
    ->select('_id')
    ->field('gender')->equals('male')
    ->getQuery()->execute()->toArray();
$products = $this->createQueryBuilder()
    ->hydrate(false)
    ->field('user.id')->in(array_keys($users))
    ->getQuery()->execute()->toArray();

相关内容

  • 没有找到相关文章

最新更新