繁体   English   中英

doctrine odm查询引用很多字段

[英]doctrine odm query reference many field

以文档为例:

/** @Document */
class BlogPost
{
    // ...

    /** @ReferenceOne(targetDocument="User", inversedBy="posts") */
    private $user;
}

/** @Document */
class User
{
    // ...

    /** @ReferenceMany(targetDocument="BlogPost", mappedBy="user") */
    private $posts;
}

有什么方法可以查询用户实体并检索他的所有帖子?

我的意思是我可以使用示例查询:

db.BlogPost.find({ 'user.$id' : user.id })

但是,如果我想做什么:

db.User.find({ 'id' : id })

并通过用户属性$ posts访问用户帖子

这可以归档吗?

编辑

当我执行查询时,我们可以找到日志:

[2016-08-15 17:13:45] doctrine.DEBUG: MongoDB query: {"find":true,"query":{"_id":{}},"fields":[],"db":"base","collection":"User"} [] []
[2016-08-15 17:13:45] doctrine.DEBUG: MongoDB query: {"limit":true,"limitNum":1,"query":{"_id":{}},"fields":[]} [] []
[2016-08-15 17:13:45] doctrine.DEBUG: MongoDB query: {"limit":true,"limitNum":null,"query":{"_id":{}},"fields":[]} [] []

使用Doctrine ODM:

$dm = $this->get('doctrine_mongodb')->getManager();

$user = $dm->getRepository('AppBundle:User')->findOneById($id);
$posts = $user->getPosts();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM