Руководство по MongoDB. Создание коллекций

В данной статье мы рассмотрим процесс создание коллекций в MongoDB.


Метод createCollection()

Для создания коллекций в MongoDB используется следующая команда:


db.createCollection(имя_коллекции, свойства_коллекции)

Требования к имени и свойствам следующие:

Параметр Тип Описание
Имя коллекции String Имя создаваемой коллекции
Свойства коллекции Document Определяет такие свойства, как индексация и память.

Имя коллекции является обязательным, а свойства – нет. В свойствах мы можем использовать настраивать параметры:

Поле Тип Описание
capped Boolean Создаёт ограниченную по размеру коллекцию. Если количество элементов в коллекции достигло максимума, то каждая следующая запись будет перезаписывать более старые данные.
autoIndexID Boolean Автоматически создаёт индекс для поля _id field.s
size number Определяет максимальный размер (в байтах) ограниченной (capped) коллекции. Если коллекция ограничена, то необходимо обязательно указать максимальный размер.
max number Определяет максимальное количество документов в ограниченной коллекции.

При вставке нового документа, MongoDB, в первую очередь, проверяет параметр size, а затем – параметр max в ограниченной (capped) коллекции.


Пример
Для понимания того, как это работает на практике, рассмотрим простой пример:

Создадим новую БД с именем projectdb:


> use projectdb
switched to db projectdb

Создадим в ней ограниченную коллекцию developers, в которой мы сможем хранить только 10 разработчиков:


> db.createCollection("developers", {capped: true, autoIndexID: true, size: 371400, max: 10})
{ "ok" : 1 }

Для просмотра всех коллекций используется команда:


> show collections
developers

В MongoDB при вставке документа коллекция создаётся автоматически


> db.proselyte.insert({"name": "proselyte"})
WriteResult({ "nInserted" : 1 })

Проверим список коллекций ещё раз:


> show collections
developers
proselyte

На этом мы заканчиваем изучение способа создания коллекций в MongoDB.
В следующей статье мы рассмотрим способ удаления коллекций.