2012-06-14 52 views
2

我對某事有評論,並且有可能喜歡它們。這些喜歡的節目Comments保存爲EmbedMany(targetDocument=User)我如何查詢所有具有嵌入在教義中的特定項目的項目odm

我想查詢所有Comments特定用戶已經喜歡,我該怎麼做?

我認爲是這樣的:

$dm->createQueryBuilder('Comment') 
    ->field('likes.id') 
    ->in(array($user->getId())) 
    ->getQuery() 
    ->execute(); 

但這似乎並沒有工作。

回答

3

您可以在嵌入文檔上查詢,就好像它是一個普通字段。它的類型是ObjectId,所以你必須手動創建MongoId來查詢。

$dm->createQueryBuilder('Comment') 
    ->field('likes.$id')->equals(new \MongoId($user->getId())) 
    ->getQuery() 
    ->execute(); 

,只是要注意,對於引用這將是:

$dm->createQueryBuilder('Comment') 
    ->field('likes')->references($user) 
    ->getQuery() 
    ->execute(); 
相關問題