2016-08-14 3 views
1

이 문서의 예를 보자교리 ODM 쿼리 참조 많은 필드

i는 사용자 개체를 쿼리와 그의 모든 게시물을 검색 할 수있는 방법이 있습니다
/** @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 }) 

그리고 액세스 사용자 게시물

수이 보관 되니?

편집

나는 우리가 로그를 발견 할 수있는 쿼리를 수행 할 때 교리 ODM와

[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":[]} [] [] 

답변

0

:

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

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

난 이미 시도하고 getPosts 빈 수집, 다른 아무것도 반환을 이 일이 발생할 수 있는지 검토하거나 확인해야합니까? – bitgandtter

+0

DB를 교리로 채웠습니까? – Alsatian

+0

읽어보기 : http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/reference-mapping.html#storing-references – Alsatian