W Dokumencie Symfony używam MongoDB jako bazy danych. Muszę mieć listę wszystkich kolekcji w bazie danych.MongoDB :: listCollections nie działa
Myślałem, że metoda ListCollections()
poda mi te informacje, jak sugeruje nazwa i dokumentacja. Z tą różnicą, że funkcja ta nie zwraca mi niczego.
Od Symfony PHP ja dzwonię metodę tak:
$this->get('doctrine_mongodb.odm.default_connection')->selectDatabase('database');
To daje mi instancję klasy Doctrine\MongoDB\Database
Klasa ta posiada funkcję listCollection()
jak nizej:
/**
* Wrapper method for MongoDB::listCollections().
*
* @see http://php.net/manual/en/mongodb.listcollections.php
* @return array
*/
public function listCollections()
{
return $this->mongoDB->listCollections();
}
Ponieważ dokumentacja sugerowałaby, że ta funkcja powinna zwrócić tablicę, która to robi (ale jest pusta, nawet jeśli istnieją kolekcje w mojej bazie danych).
Więc przeniosłem się głębiej i spojrzał na dokumentacji listCollections()
wtyczki pecl Mongo który stwierdza:
/**
* (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) {}
Jak można by uzyskać wszystkie nazwy odbioru w jednej bazie danych w ciągu Symfony 3.0.6?
Niektóre krytyczne szczegóły:
- Mongo Wersja: wersja 1.5.5
- Symfony: 3.0.6
- MongoDB wersja shell: 3.2.4