2016-05-25 18 views
6

All'interno di Symfony Doctrine sto usando MongoDB come database. Ho bisogno di avere una lista di tutte le collezioni all'interno di un database.MongoDB :: listCollections non funzionante

Ho pensato che il metodo ListCollections() mi avrebbe dato come suggerisce il nome e la documentazione. Tranne questa funzione non mi restituisce nulla.

Da Symfony PHP sto chiamando il metodo come questo:

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

Questo mi dà un'istanza della classe Doctrine\MongoDB\Database Questa classe ha la funzione listCollection() sotto enunciati:

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

Come suggerisce la documentazione questa funzione dovrebbe restituire un array che fa (eppure è vuoto anche se ci sono raccolte nel mio database).

così ho spostato più profondo e guardò la documentazione del listCollections() del plugin PECL mongo in cui si afferma:

/** 
* (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) {} 

come si potrebbe ottenere tutti i nomi di raccolta entro un database tra Symfony 3.0.6?

Alcuni dettagli critici:

  • Mongo versione: La versione 1.5.5
  • Symfony: 3.0.6
  • MongoDB versione della shell: 3.2.4

risposta