sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoException:las claves de longitud cero no están permitidas, ¿usó $ con comillas dobles?

Acabo de arreglar esto usando la ID del objeto al que se hace referencia en lugar del objeto de referencia en sí como mi término de búsqueda.

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

EDITAR:Eso no arroja la excepción, pero tampoco devuelve nada. Intenté usar el nuevo MongoId($id) como se sugirió en algunos lugares (Doctrine MongoDB encontrar por id ), pero eso tampoco funcionó. Finalmente, encontré algo en el generador de consultas completo que busca por referencias (nota:esto usa el objeto en lugar de la ID del objeto).

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

Siento que esto debería hacerse de manera más simple (como lo hiciste originalmente), pero esta solución funciona para mí.