MongoDB::getCollectionNames

(PECL mongo >=1.3.0)

MongoDB::getCollectionNamesПолучает массив имен для всех коллекций в базе данных

Описание

public MongoDB::getCollectionNames ([ array $options = array() ] ) : array

Получает список всех коллекций в базе данных и возвращает их имена в виде массива строк.

Замечание: Этот метод использует комманду » 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.

Возвращаемые значения

Returns the collection names as an array of strings.

Ошибки

Для MongoDB 2.6 и более ранних версий MongoException будет выброшено, если для критерия "name" опции "filter" было указано не строковое значение.

Список изменений

Версия Описание
1.6.0 Изменен первый параметр, чтобы он был массивом опций. До версии 1.6.0 первым параметром было булево значение, указывающее на параметр "includeSystemCollections".

Примеры

Пример #1 Пример использования MongoDB::getCollectionNames()

<?php
$m 
= new MongoClient();
$db $m->selectDB("demo");
$collections $db->getCollectionNames();

foreach (
$collections as $collectionName) {
    echo 
"Found collection: "$collectionName"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

...
Found collection: img
Found collection: beer
Found collection: collation
...

Смотрите также

  • MongoDB::listCollections() - Получает массив объектов MongoCollection для всех коллекций в базе данных
  • MongoDB::getCollectionInfo() - Возвращает информацию о коллекциях в базе данных

add a note add a note

User Contributed Notes 1 note

up
0
George Gombay
10 years ago
A small change to the earlier example will result in a more user-friendly output that will be easier on the eye:

<?php
$dbname
= 'members';    // Previously created database
$conn = new MongoClient("localhost");

$list = $conn->selectDB($dbname)->getCollectionNames();

foreach (
$list as $coltion) {
       
$colName = $coltion;
        echo
'<p>Collection name is: <em>';
        echo
$colName;
        echo
'.</em></p>';
    }
?>

This will produce an output similar to the following;

Collection name is: addresses.
To Top