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

MongoException:Taster med nul længde er ikke tilladt, brugte du $ med dobbelte anførselstegn?

Jeg har lige rettet dette ved at bruge det refererede objekts ID i stedet for selve referenceobjektet som min søgeterm.

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

EDIT:Det er ikke en undtagelse, men det returnerer faktisk heller ikke noget. Jeg prøvede at bruge det nye MongoId($id), som blev foreslået et par steder (Doktrin MongoDB find ved id ), men det virkede heller ikke. Endelig fandt jeg noget i den fulde forespørgselsbygger, der søger efter referencer (bemærk:dette bruger objektet i stedet for objektets ID).

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

Jeg føler, at dette burde gøres mere enkelt (som du gjorde oprindeligt), men denne rettelse virker for mig.



  1. 6 nyttige værktøjer til at overvåge MongoDB-ydelse

  2. Hvordan kan jeg oprette forbindelse til MongoDB-serveren ved hjælp af JAVA fra OpenShift?

  3. Brug af løfter i Mongoose-ruter

  4. Sådan tilslutter du dig og sorterer få samlinger i én pipeline i Mongo