sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoException:nolllängdsnycklar är inte tillåtna, använde du $ med dubbla citattecken?

Jag fixade detta genom att använda det refererade objektets ID istället för själva referensobjektet som min sökterm.

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

EDIT:Det är inget undantag, men det returnerar faktiskt ingenting heller. Jag försökte använda nya MongoId($id) som föreslagits några ställen (Doktrin MongoDB hitta efter id ), men det fungerade inte heller. Slutligen hittade jag något i den fullständiga frågebyggaren som söker efter referenser (obs:detta använder objektet istället för objektets ID).

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

Jag tycker att det här borde göras enklare (som du gjorde från början), men den här korrigeringen fungerar för mig.



  1. Skicka variabler till en MongoDB-vy

  2. Mappning av MongoDB-dokument till ärendeklass med typer men utan inbäddade dokument

  3. Datavila för fjäderstartstarter, @Notnull-begränsningen fungerar inte

  4. MongoDB updateOne()