[MODM-145] QueryBuilder references() to does not support references on embedded objects' fields Created: 23/May/11  Updated: 25/Oct/11

Status: Open
Project: Doctrine MongoDB ODM
Component/s: Query Builder
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Minor
Reporter: Jeremy Mikola Assignee: Jonathan H. Wage
Resolution: Unresolved Votes: 0
Labels: None


I noticed that the references() method does not support fields on embedded objects, as the argument to the preceding field() method will be passed into getFieldMapping() and trigger an exception. I suppose a solution would require multiple calls to getFieldMapping() in order to dive into the embedded object's class metadata.

To demonstrate, below is an example of a UserRepository class. The User document contains an embeddedObject that itself references another User:

class UserRepository extends DocumentRepository
    public function findByEmbeddedObjectReference(User $user)
        return $this->createQueryBuilder()
//          ->field('embeddedObject.user')->references($user)

Using field()/equals() works fine as an alternative to references(), so there is no urgent need for this feature.

Comment by Nicolas Brignol [ 25/Oct/11 ]


It seems that we have a problem with the temporary solution proposed :
Doctrine remove the "$id" part in our query :


will generate the query without "$id".
There is no problem when the reference is directly in the requested object.

Did someone experience this issue ?

Generated at Wed Nov 25 19:29:31 EST 2015 using JIRA 6.4.10#64025-sha1:5b8b74079161cd76a20ab66dda52747ee6701bd6.