Приступили к самому основному - операциям создания, чтения, изменения и удаления документов в MongoDB.
Аббревиатура для этих четырех операций - CRUD ( Create, Read, Update, Delete ).
В этом обзоре будет рассмотрен процесс создания документа - Create.
Два основных метода для создания нового документа в коллекции - метод insert и метод save.
Метод insert()
Команда создания нового документа в коллекции выглядит так:
COLLECTION_NAME - это имя коллекции, в которой будет создаваться новый документ. document - это JavaScript-объект.
Создам новый документ в коллекции customers базы данных users. Для этого перейду в эту базу данных:
Создам коллецию customers в базе данных users:
Создам в коллекции customers новый документ. Можно использовать как одинарные, так и двойные кавычки - дело вкуса:
MongoDB выдает отчет о выполнении команды в строке:
Видно, что операция WriteResult успешно выполнилась - nInserted в значении true.
Как хорошо видно, создаваемый документ - это объект. Если нужно создать сразу несколько документов, то методу insert передается массив этих объектов:
BulkWriteResult выдает подробную информацию о выполненных операциях. Видно, что была выполнена только операция создания документа - “nInserted” : 2.
Просмотр списка документов
Вывести список созданных документов в коллекции customers можно при помощи метода .find():
Видно, что у каждого созданного мною документа есть ключ _id со значением ObjectId(). Этого ключа я не указывал при создании документа.
Все правильно - этот ключ и его значение MongoDB генерирует автоматически и присваивает каждому создаваемому документу. Таким образом MongoDB делает все документы уникальными - нет ни одного документа с одинаковым _id.
Можно сделать вывод метода .find() более читабельным, если подключить к нему по цепочке еще один метод - .pretty():
Метод save()
С помощью метода save() также можно создавать новый документ в коллекции. Создам еще один документ:
Сообщение от MongoDB говорит мне, что операция была выполнена успешно. Посмотрю на результат:
Отличие метода save() от метода insert() заключается в том, что если при создании документа будет передан ключ _id уже существующего документа, то существующий документ будет перезаписан новым.
Вот у меня создан документ:
И он успешно добавлен в коллекцию customers с уникальным ключом “_id” : ObjectId(“5920166b986c86064996f59e”):
Теперь я создаю новый документ, но передаю в него существующую пару ключ-значение “_id” : ObjectId(“5920166b986c86064996f59e”):
Смотрю результат:
… и вижу, что последний документ был полностью перезаписан. Вуаля.
Понятие документа - основа MongoDB. Недаром говорится, что MongoDB - документо-ориентированная система управления базами данных.
Document входит в состав collection и наполняет ее содержимым. Document - это обычный JSON-объект.
Если есть навык создания и работы с JSON-объектами, то уже можно создавать документы в MongoDB.
Простой пример документа в базе данных MongoDB:
Стоит обратить внимание на ключ “_id” - этот ключ и значение ключа MongoDB автоматически генерирует для уникальной идентификации каждого документа в базе данных.
Чуть более сложный пример документа в MongoDB:
В данном случае документ состоит из нескольких типов данных - Number, Array, String, Boolean.
Два документа в коллекции canada базы данных users:
Таких документов в коллекции canada может быть сколько угодно.
Вот в принципе и все, что нужно знать о документах в MongoDB.
В базах данных MongoDB данные объединяются в коллекции - collection. В одной базе данных может быть от одной до многих collections.
Смысл collection - объединять однотипные данные. То есть данные, котороые можно объединить по какому-либо признаку.
Например, в базе данных animals может быть две collections - cats и dogs. В коллекции cats хранятся все данные, о которых можно сказать - “это данные по кошкам”. В коллекции dogs хранятся “все данные по собакам”.
Создание collection
В базе данных создать collection можно командой:
Например, я создам две коллекции cats и dogs в базе данных animals. Для этого создам базу данных animals:
Создам коллекцию cats:
Создам коллекцию dogs:
Посмотреть список существующих колекций базы данных можно командой:
Проверю, создались ли успешно коллеции cats и dogs в базе данных animals:
Переименование collection
Операция переименования collection в MongoDB выполняется командой:
Например, я создал коллекцию bird в базе данных animals:
… и хочу переименовать эту коллецию в birds:
В результате коллекция bird успешно переименована в birds.
Удаление collection
В MongoDB удаление коллекции выполняется командой:
Например, я хочу удалить коллекцию birds из базы данных animals:
Коллекция birds успешно удалена из базы данных.
Создание collection - автоматический способ
В MongoDB имеется способ автоматического создания collection - путем добавления документа в новую коллецию при помощи метода insert.
Например, коллекции insects в базе данных animals не существует. В будущую коллекцию insects я добавлю документ cockroach и тем самым автоматически создам коллецию insects: