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
.