I am using Doctrine ODM and am having trouble querying embedded documents using a referenced document.
Consider the following documents:
<?php
class TopCategory
{
private $subCategories;
}
class SubCategory
{
private $products;
}
class Product
{
private $name;
}
Now I'm wondering how I can find TopCategory (or SubCategory) by product, I tried several different ways to achieve this, one method works, but a little hacky.
The first method does not work:
$category = $dm->createQueryBuilder('TopCategory')
->field('subCategories.products')->includesReferenceTo($someProduct)
->getQuery()->execute();
The second method does not work:
$category = $dm->createQueryBuilder('SubCategory')
->field('products')->includesReferenceTo($someProduct)
->getQuery()->execute();
Third, a workaround:
$category = $dm->createQueryBuilder('SubCategory')
->field('products.$id')->equals(new \MongoId($someProduct->getId()))
->getQuery()->execute();
I am using the latest from GitHub and MognoDB v1.8.0 What is connected with this?
NOTE. I wonder how Doctrine ODM allows you to directly return an embedded document.
source
share