MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoException :les clés de longueur nulle ne sont pas autorisées, avez-vous utilisé $ avec des guillemets doubles ?

Je viens de résoudre ce problème en utilisant l'ID de l'objet référencé au lieu de l'objet de référence lui-même comme terme de recherche.

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

EDIT :Cela ne génère pas l'exception, mais cela ne renvoie rien non plus. J'ai essayé d'utiliser le nouveau MongoId ($id) comme suggéré à quelques endroits (Doctrine MongoDB rechercher par identifiant ), mais cela n'a pas fonctionné non plus. Enfin, j'ai trouvé quelque chose dans le générateur de requête complet qui recherche par références (remarque :cela utilise l'objet au lieu de l'ID de l'objet).

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

Je pense que cela devrait être fait plus simplement (comme vous l'avez fait à l'origine), mais ce correctif fonctionne pour moi.