まず、MongoDBを見てみましょう。
db.users.find({"username": /^a/})
正規表現を定義することで、phpでも同じことができます。
$collection->find(array('name'=> array('$regex' => '^a'));
Doctrine MongoDB ODMでは、ほぼ同じ正規表現構文を使用できます。
$user = $this->get('doctrine.odm.mongodb.document_manager')
->getRepository('WishbotWebBundle:User')
->findByUsername(array('$regex' => $fname));
ドキュメントが1つしか見つからない場合でも、ドキュメントのコレクションが返されることに注意してください。上記の正規表現は、ユーザー名に$fname
が含まれているすべてのドキュメントにも一致します どこでも文字列。
$fname
で始まるユーザー名が必要な場合 、'^' . $fname
。