如何通过参考文档查询嵌入文档?

问题描述

| 我正在使用Doctrine ODM,但无法通过引用的文档查询嵌入式文档。 考虑以下文件:
<?php

/** @Document */
class TopCategory 
{

    /** EmbedMany(targetDocument=\"SubCategory\") */
    private $subCategories;

}

/** @EmbeddedDocument */
class SubCategory 
{

    /** ReferenceMany(targetDocument=\"Product\") */
    private $products;

}


/** @Document */
class Product
{

    /** @String */
    private $name;

}
现在,我想知道如何找到按产品分类的TopCategory(或SubCategory),我尝试了几种不同的方法来实现这一目标,一种方法可行,但有点怪异。 第一种方法不起作用:
$category = $dm->createQueryBuilder(\'TopCategory\')
    ->field(\'subCategories.products\')->includesReferenceTo($someProduct)
    ->getQuery()->execute();
// ... gives Doctrine\\ODM\\MongoDB\\MongoDBException: No mapping found for field \'subCategories.products\' in class \'TopCategory\'.\'
第二种方法不起作用:
$category = $dm->createQueryBuilder(\'SubCategory\')
    ->field(\'products\')->includesReferenceTo($someProduct)
    ->getQuery()->execute();    
// ... returns null
第三,解决方法:
$category = $dm->createQueryBuilder(\'SubCategory\')
    ->field(\'products.$id\')->equals(new \\MongoId($someProduct->getId()))
    ->getQuery()->execute();    
// .. works,but seems hackish
我正在使用GitHub和MognoDB v1.8.0的最新版本 这是怎么回事? 注意:有趣的Doctrine ODM如何使您直接返回嵌入式文档。     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)