2016-05-25 12 views
6

Symfony Doktrini içinde MongoDB'yi veritabanı olarak kullanıyorum. Veritabanındaki tüm koleksiyonların bir listesini almam gerekiyor.MongoDB :: listKoleksiyonlar çalışmıyor

ListCollections() metodunun bana isimleri ve dokümantasyon önerileri olarak vereceğini düşündüm. Bu fonksiyon haricinde hiçbir şey bana geri dönmez. Symfony'nin PHP itibaren ben böyle yöntemi çağırıyorum

:

/** 
* Wrapper method for MongoDB::listCollections(). 
* 
* @see http://php.net/manual/en/mongodb.listcollections.php 
* @return array 
*/ 
public function listCollections() 
{ 
    return $this->mongoDB->listCollections(); 
} 
:

$this->get('doctrine_mongodb.odm.default_connection')->selectDatabase('database');

Bu bana sınıfın Bu sınıf işlevi listCollection() sahiptir Doctrine\MongoDB\Database bir örneğini verir aşağıda belirtildiği gibi

Dokümantasyon, bu işlevin bir dizi döndürdüğünü ileri sürdüğü için (veritabanımda bile koleksiyonlar olsa bile boştur).

Yani derin taşındı ve devletler Mongo pecl eklentisinin listCollections() belgelerine baktı:

/** 
* (PECL mongo >= 0.9.0)<br/> 
* Get a list of collections in this database 
* @link http://www.php.net/manual/en/mongodb.listcollections.php 
* @param bool $includeSystemCollections [optional] <p>Include system collections.</p> 
* @return array Returns a list of MongoCollections. 
*/ 
public function listCollections($includeSystemCollections = false) {} 

Nasıl bir Symfony 3.0.6 içinde bir veritabanı içindeki tüm toplama isimleri alacağı?

Bazı kritik ayrıntıları:

  • Mongo versiyonu: 1.5.5
  • Symfony'nin sürümü: 3.0.6
  • MongoDB kabuk sürümü: 3.2.4

cevap