MongoDB::createCollection

(PECL mongo >=0.9.0)

MongoDB::createCollectionСоздает коллекцию

Описание

public MongoDB::createCollection ( string $name [, array $options ] ) : MongoCollection

Этот метод используется для создания ограниченных коллекций и других коллекций, требующих специальных параметров. Это идентично выполнению:

<?php

$collection 
$db->command(array(
    
"create" => $name,
    
"capped" => $options["capped"],
    
"size" => $options["size"],
    
"max" => $options["max"],
    
"autoIndexId" => $options["autoIndexId"],
));

?>
Смотрите MongoDB::command() для получения дополнительной информации о командах базы данных.

Список параметров

name

Название коллекции.

options

Массив, содержащий опции для коллекций. Каждый параметр является собственным элементом в массиве параметров, а имя параметра, указанное ниже, является ключом элемента. Поддерживаемые параметры зависят от версии сервера MongoDB и механизма хранения, и драйвер принимает любой параметр, который вы передаете, прямо на сервер. Вот некоторые из поддерживаемых опций, но вы можете найти полный список в основных документах MongoDB на » createCollection:

capped

Если коллекция должна быть фиксированного размера.

size

Если коллекция имеет фиксированный размер, ее размер в байтах.

max

Если коллекция имеет фиксированный размер, максимальное количество элементов для хранения в коллекции.

autoIndexId

Если значение capped равно TRUE, вы можете указать FALSE, чтобы отключить автоматический индекс, созданный в поле _id. До MongoDB 2.2 значением по умолчанию для autoIndexId было FALSE.

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

Возвращает объект коллекции, представляющий новую коллекцию.

Примеры

Пример #1 Пример использования MongoDB::createCollection() ограниченной коллекции

Ограниченная коллекция - это особый тип коллекции, который имеет фиксированный размер или фиксированное количество элементов. Как только коллекция "заполнится", самые старые элементы будут удалены при добавлении новых элементов. Ограниченные коллекции могут быть очень полезны для приложений, таких как ведение журналов, где вы можете зарезервировать определенное количество места для журналов и не беспокоиться о том, что они станут слишком большими.

В этом примере создается очень маленькая коллекция журналов, в которой будет храниться не более 10 документов.

<?php

$log 
$db->createCollection(
    
"logger",
    array(
        
'capped' => true,
        
'size' => 10*1024,
        
'max' => 10
    
)
);

for (
$i 0$i 100$i++) {
    
$log->insert(array("level" => WARN"msg" => "пример сообщения журнала #$i""ts" => new MongoDate()));
}

$msgs $log->find();

foreach (
$msgs as $msg) {
    echo 
$msg['msg']."\n";
}

?>

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


пример сообщения журнала #90
пример сообщения журнала #91
пример сообщения журнала #92
пример сообщения журнала #93
пример сообщения журнала #94
пример сообщения журнала #95
пример сообщения журнала #96
пример сообщения журнала #97
пример сообщения журнала #98
пример сообщения журнала #99

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

Версия Описание
1.4.0

В версиях до 1.4.0 все параметры были аргументами метода. Синопсис функций в этих старых версиях:

public MongoDB::createCollection ( string $name [, bool $capped = FALSE [, int $size = 0 [, int $max = 0 ]]] ) : MongoCollection

Значение параметров такое же, как описано выше в аргументе options.