MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment interroger mongodb avec la condition "like" dans symfony2

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 .