0
我有混合型的集合等被定義在這裏:http://www.doctrine-project.org/2010/07/20/mixing-types-of-documents.html主義ODM獲得通過標識與混合型
/**
* @Document(collection="my_documents")
* @DiscriminatorField(fieldName="type")
* @DiscriminatorMap({"article"="Article", "album"="Album"})
*/
class Article
{
// ...
}
專輯
/**
* @Document(collection="my_documents")
* @DiscriminatorField(fieldName="type")
* @DiscriminatorMap({"article"="Article", "album"="Album"})
*/
class Album
{
// ...
}
我想檢索該集合的任何對象與給予Id。
喜歡的東西
$object = $dm->find(['Article','Album'], $id);
我不能使用,因爲發現需要文檔名稱。它會是:
$article = $dm->find('Article', $id);
$album = $dm->find('Album', $id);
我試圖創建我自己的查詢,但它總是返回null。
$qb = $dm->createQueryBuilder(['Article', 'Album']);
$qb
->elemMatch(['id' => $id])
;
$result = $qb->getQuery()->execute();
你有什麼想法嗎?
任何不帶繼承的想法? – goto
理論上你可以自己從MongoDB獲取數據('DocumentManager :: getDocumentCollection'),然後手動調用Hydrator,但這似乎是一個過度的 – malarzm