For an alternative to the shell command 'show dbs', refer to my note for the listDBs() method of Mongoclient(), which reproduces some simple PHP code that will yield the names of all database present.
(PECL mongo >=0.9.0)
MongoDB::listCollections — Получает массив объектов MongoCollection для всех коллекций в базе данных
$options
= array()
] ) : arrayПолучает список всех коллекций в базе данных и возвращает их в виде массива объектов MongoCollection.
Замечание: Этот метод использует комманду » listCollections когда общается с MongoDB 2.8+. Для более старых баз данных, этот метод запрашивает специальную коллекцию
system.namespaces
.
options
Массив опций для перечисления коллекций. В настоящее время доступны следующие варианты:
"filter"
Опциональный критерий запроса. Если задан, то будет использован для фильтрации коллекций, включенных в результирующий набор.
Подходящие поля для запроса включают "name"
(строка с именем коллекции, без префикса в виде имени базы данных) и "options" (объект, включающий опции, использованные при создании этой коллекции).
.
Замечание: MongoDB 2.6 и более ранние версии, требуют, чтобы критерий
"name"
был строго строкового типа. Потому, что драйвер должен добавть к этому значению префикс в виде имени базы данныхдля запроса коллекцииsystem.namespaces
. Более поздние версии MongoDB не имеют этого ограничения, так как драйвер использует комманду listCollections.
"includeSystemCollections"
Логическое значение, по умолчанию FALSE
. Определяет, должны ли системные коллекции входить в результирующий набор.
Следующая опция может использоваться с MongoDB 2.8+:
"maxTimeMS"
Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.
Возвращает массив объектов MongoCollection.
Для MongoDB 2.6 и более ранних версий MongoException
будет выброшено, если для критерия "name"
опции "filter"
было указано не строковое значение.
Версия | Описание |
---|---|
1.6.0 |
Изменен первый параметр, чтобы он был массивом опций. До версии 1.6.0
первым параметром было булево значение, указывающее
на параметр "includeSystemCollections" .
|
1.3.0 |
Добавлен параметр includeSystemCollections .
|
Пример #1 Пример использования MongoDB::listCollections()
В следующем примере демонстрируется счетчик выполнения для каждой коллекции в базе данных.
<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->listCollections();
foreach ($collections as $collection) {
echo "количество документов в $collection: ";
echo $collection->count(), "\n";
}
?>
Результатом выполнения данного примера будет что-то подобное:
... amount of documents in demo.pubs: 4 amount of documents in demo.elephpants: 3 amount of documents in demo.cities: 22840 ...
For an alternative to the shell command 'show dbs', refer to my note for the listDBs() method of Mongoclient(), which reproduces some simple PHP code that will yield the names of all database present.