В данной статье мы рассмотрим процесс создание коллекций в 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.
В следующей статье мы рассмотрим способ удаления коллекций.