2016-05-25 13 views
6

Innerhalb von Symfony Doctrine verwende ich MongoDB als Datenbank. Ich brauche eine Liste aller Sammlungen innerhalb einer Datenbank.MongoDB :: listCollections funktioniert nicht

Ich dachte, die Methode ListCollections() würde mir diese geben, wie der Name und die Dokumentation vermuten lassen. Außer dieser Funktion gibt mir nichts zurück.

Von Symfony PHP dies die Methode, wie ich bin Aufruf:

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

Das gibt mir eine Instanz der Klasse Doctrine\MongoDB\Database Diese Klasse hat die Funktion listCollection() wie unten angegeben:

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

Wie die Dokumentation vorschlagen würde, sollte diese Funktion ein Array zurückgeben, was es tut (aber es ist leer, auch wenn es Sammlungen in meiner Datenbank gibt).

Also zog ich tiefer und schaute auf die Dokumentation von listCollections() des Mongo pecl-Plugin, das heißt es:

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

Wie man alle Sammlungsnamen innerhalb einer Datenbank innerhalb Symfony 3.0.6 bekommen würde?

Einige kritische Details:

  • Mongo Version: 1.5.5
  • Symfony Version: 3.0.6
  • MongoDB Shell-Version: 3.2.4

Antwort

Verwandte Themen