MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoException:non sono consentite chiavi di lunghezza zero, hai usato $ con virgolette doppie?

L'ho appena risolto utilizzando l'ID dell'oggetto di riferimento invece dell'oggetto di riferimento stesso come termine di ricerca.

$_repo->findOneByCustomer($customer->getId());

EDIT:questo non sta generando l'eccezione ma in realtà non sta nemmeno restituendo nulla. Ho provato a utilizzare il nuovo MongoId($id) come suggerito in alcuni punti (Dottrina MongoDB trova per ID ), ma neanche quello ha funzionato. Infine, ho trovato qualcosa nel generatore di query completo che ricerca per riferimenti (nota:questo utilizza l'oggetto invece dell'ID dell'oggetto).

$dm->createQueryBuilder()->find('CantaoCustomerBundle:CustomerTags')
                         ->field('customer')->references($customer)
                         ->getQuery()->execute();

Sento che questo dovrebbe essere fatto in modo più semplice (come hai fatto in origine), ma questa correzione funziona per me.