MongoDB::createCollection
(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";
}
?>
Результатом выполнения данного примера будет что-то подобное:
пример сообщения журнала #90
пример сообщения журнала #91
пример сообщения журнала #92
пример сообщения журнала #93
пример сообщения журнала #94
пример сообщения журнала #95
пример сообщения журнала #96
пример сообщения журнала #97
пример сообщения журнала #98
пример сообщения журнала #99
Список изменений
Версия | Описание |
---|---|
PECL mongo 1.4.0 |
В версиях до 1.4.0 все параметры были аргументами метода. Синопсис функций в этих старых версиях:
public MongoDB::createCollection
( string
$name
, bool $capped = false
, int $size = 0
, int $max = 0
) : MongoCollection
Значение параметров такое же, как описано выше
в аргументе |