Tout d'abord, regardons MongoDB :la recherche avec regex peut être effectuée en définissant une regex, comme expliqué ici :
db.users.find({"username": /^a/})
La même chose peut être faite en php en définissant une regex, expliqué ici :
$collection->find(array('name'=> array('$regex' => '^a'));
Vous pouvez utiliser presque exactement la même syntaxe regex avec l'ODM Doctrine MongoDB :
$user = $this->get('doctrine.odm.mongodb.document_manager')
->getRepository('WishbotWebBundle:User')
->findByUsername(array('$regex' => $fname));
Veuillez noter qu'une collection de documents est retournée, même si un seul est trouvé. L'expression régulière ci-dessus correspond également à tous les documents où le nom d'utilisateur contient le $fname
chaîne n'importe où.
Si vous voulez des noms d'utilisateur commençant par $fname
, vous devez utiliser '^' . $fname
.