(PECL mongo >=0.9.0)
MongoDB::createCollection — Создает коллекцию
Этот метод используется для создания ограниченных коллекций и других коллекций, требующих специальных параметров. Это идентично выполнению:
<?php
$collection = $db->command(array(
"create" => $name,
"capped" => $options["capped"],
"size" => $options["size"],
"max" => $options["max"],
"autoIndexId" => $options["autoIndexId"],
));
?>
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";
}
?>
Результатом выполнения данного примера будет что-то подобное:
Версия | Описание |
---|---|
1.4.0 |
В версиях до 1.4.0 все параметры были аргументами метода. Синопсис функций в этих старых версиях:
public MongoDB::createCollection
( string
$name
[, bool $capped = FALSE
[, int $size = 0
[, int $max = 0
]]] ) : MongoCollection
Значение параметров такое же, как описано выше
в аргументе |