MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoException:chaves de comprimento zero não são permitidas, você usou $ com aspas duplas?


Acabei de corrigir isso usando o ID do objeto referenciado em vez do próprio objeto de referência como meu termo de pesquisa.
$_repo->findOneByCustomer($customer->getId());

EDIT:Isso não está lançando a exceção, mas também não está retornando nada. Tentei usar o novo MongoId($id) como sugerido em alguns lugares (Doctrine MongoDB encontra por id ), mas isso também não funcionou. Finalmente, encontrei algo no construtor de consultas completo que pesquisa por referências (nota:isso usa o objeto em vez do ID do objeto).
$dm->createQueryBuilder()->find('CantaoCustomerBundle:CustomerTags')
                         ->field('customer')->references($customer)
                         ->getQuery()->execute();

Eu sinto que isso deveria ser feito de forma mais simples (como você fez originalmente), mas essa correção está funcionando para mim.