2012-06-04 13 views
12

Doymrine'nin Mongodb ODM kullanarak Symfony 2 kullanarak Mongodb'u sorgulamak için normal ifadeleri kullanıyorum.Doctrine'nin Mongodb ODM'si ile düzenli ifadeleri nasıl kullanabilirim?

PHP mongo driver can do it'u biliyorum. Ancak, bunu Doktrini ile nasıl yapacağımı bilmiyorum.

Aynı sınıfı kullanıyor muyum? MongoRegex'i Symfony'den nasıl öğrenebilirim?

+0

. php http://stackoverflow.com/questions/36761669/symfony2-need-to-use-the-regular-expression-in-doctrines-mongodb-odm-to-check neden bu cevabı verdik edilir Bu konuda endişe duyanlar için. –

cevap

28

Bu, bir süre önce doctrine-user posta listemize geldi. Eğer ODM sorgularda doğrudan \MongoRegex sınıfını kullanabilirsiniz:

$documentRepository->findBy(array(
    'foo' => new \MongoRegex('/^bar/'), 
)); 

Veya eğer bir sorgu oluşturucu kullanmak:

$queryBuilder->field('foo')->equals(new \MongoRegex('/^bar/')); 

ön demirlemiş, harf duyarlı regex desenleri mümkün olacak unutmayın indeksleri en verimli şekilde kullanın. Bu, Mongo docs'da daha ayrıntılı olarak tartışılmıştır.

+0

MongoRegex'in şimdi dezenfekte edildiğinden yeni MongoDB \ BSON \ Regex sınıfını kullanmam gerekiyor. Bunu Symfony2 projesinde nasıl kullanabilirim. var_dump ($ regex); http://php.net/manual/en/mongodb-bson-regex.construct.php –

1

Eğer iken/^ a /,/^ a detay How to use Reserved characters in createQueryBuilder and MongoRegix için yığın taşması üzerine Question, Ek

takip edebilirsiniz. /, ve/^ a. $/eşdeğer dizeleri eşleştir, farklı performans özelliklerine sahipler. Bu ifadelerin tümü, uygun bir dizin varsa bir dizin kullanır; ancak,/^ a. /, ve/^ a. $/Daha yavaş./^ a/önek eşleştirildikten sonra taramayı durdurabilir. O MongoRegex http://php.net/manual/en/class.mongoregex uyarınca depecated edilmiş bu çözümü deneyebilirsiniz kaldırıldı olarak MongoRegex kullanmak alışkanlık yok birisi için Mongo Docs Regix

İlgili konular