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

Como consultar o mongodb com a condição “like” no symfony2


Primeiro de tudo, vamos olhar para o MongoDB:Pesquisar com regex pode ser feito definindo um regex, conforme explicado aqui :
db.users.find({"username": /^a/})

O mesmo pode ser feito em php definindo um regex, explicado aqui :
$collection->find(array('name'=> array('$regex' => '^a'));

Você pode usar quase exatamente a mesma sintaxe regex com o Doctrine MongoDB ODM:
$user = $this->get('doctrine.odm.mongodb.document_manager')
        ->getRepository('WishbotWebBundle:User')
        ->findByUsername(array('$regex' => $fname));

Observe que uma coleção de documentos é devolvida, mesmo que apenas um seja encontrado. A regex acima também corresponde a todos os documentos em que o nome de usuário contém o $fname corda em qualquer lugar.

Se você quiser nomes de usuário que comecem com o $fname , você precisa usar '^' . $fname .