Операции CRUD в MongoDB: руководство с примерами
Опубликовано: 2020-02-05С непрерывным развитием Интернета мы теперь видим, как MongoDB и другие базы данных объектов документов становятся альтернативой обычным базам данных на основе SQL. Есть несколько преимуществ этих баз данных объектов документов по сравнению с базами данных SQL, и наиболее заметными из всех этих преимуществ являются масштабируемость и гибкость.
Важно отметить, что данные в MongoDB хранятся в двоично-кодированном формате документов JSON (BSON). Этот формат может иметь требование хранения массивов встроенных документов или, если на то пошло, значений. Документ формирует запись в MongoDB, которая представляет собой структуру, созданную из пар значений и полей.
Давайте теперь обсудим операции создания, обновления, извлечения и удаления или операции CRUD в MongoDB. Эти функции можно в широком смысле классифицировать как функции модификации данных в MongoDB. Их можно использовать только для одной коллекции. Вставка — это функция в MongoDB, которую можно использовать для добавления данных в базу данных.
Оглавление
Список операций CRUD в MongoDB
1. Создание документов
Как создаются объекты с помощью MongoDB? MongoDB использует для хранения BSON — двоичное представление JSON. Итак, довольно легко понять, что методы, используемые для выполнения различных операций в базе данных, имеют то или иное отношение к JavaScript. Давайте создадим пользователя и коллекцию пользователей. Также важно отметить, что таблицы в SQL эквивалентны коллекциям в MongoDB.
db.users.save({имя:"Майк", должность:"доктор",электронная почта:"имя@sample.com"})
В этом примере используется MongoDB save() для сохранения данных в коллекцию.
2. Вставка документов
- Пакетная вставка : эта функция позволяет одновременно добавлять список документов в базу данных. Пакет в определенный момент времени может содержать сотни или даже тысячи документов. Благодаря возможности вставки нескольких документов эта функция работает намного быстрее, чем другие функции вставки. Пакетная вставка не требует от вас создания отдельных запросов для сотен или тысяч документов. Вместо этого он работает как один запрос протокола управления передачей (TCP). Время, затрачиваемое на вставку, всегда значительно меньше, поскольку обработка заголовка не выполняется. Каждый документ, который должен быть вставлен, имеет заголовок, который передает в базу данных операцию, которую необходимо выполнить. В основном пакетные вставки используются для хранения данных датчиков и журналов сервера.
- Mongoimport : Mongoimport — это инструмент командной строки, который используется вместо пакетной вставки в важные данные из MySQL, Oracle или любой другой системы управления реляционными базами данных (RDBMS). Бывают случаи, когда вам может потребоваться внести изменения в документы — добавить собственный идентификатор — перед сохранением их в MongoDB. Еще одна важная вещь, которую вы должны знать, это то, что MongoDB принимает сообщения размером не более 16 МБ. Таким образом, пакетная вставка накладывает ограничение на количество сообщений, которые она может иметь.
- Неупорядоченная массовая вставка : в этой функции MongoDB записывает операции без соблюдения какого-либо порядка. В случае возникновения ошибки он продолжит операции записи, которые остались без прерывания. MongoDB формирует группу неупорядоченных операций при их выполнении. MongoDB также может добиваться повышения производительности, переупорядочив перечисленные операции перед выполнением. Таким образом, приложения не должны полагаться на последовательность при рассмотрении этой функции для массовой вставки. Bulk.getOperations() можно использовать, чтобы увидеть, как MongoDB группирует набор операций, а затем выполняет их. Эту команду можно использовать для добавления трех документов одновременно, но без какого-либо порядка.
- Упорядоченная массовая вставка: в этой функции MongoDB следует последовательности при записи операций. Ошибка во время любой операции записи приводит к тому, что MongoDB не выполняет другие операции записи. Упорядоченные операции группируются с учетом их непрерывности и типа. Смежные упорядоченные операции, принадлежащие к одному классу, группируются.
Например , если в упорядоченном списке есть одна операция вставки, за которой следует операция удаления, за которой следуют две операции обновления, MongoDB создаст три группы для их объединения. Первая группа будет состоять из одной операции вставки. Вторая группа будет иметь одну операцию удаления. Третья группа объединит две операции обновления.

Ожидается, что будущие выпуски MongoDB будут соответствующим образом учитывать это поведение. В каждой группе заказных массовых списков не может быть более 1000 операций. Если число превышает этот максимальный предел, MongoDB создает меньшие группы из 1000 операций или меньше, чтобы придерживаться этого ограничения. Таким образом, если есть 7000 упорядоченных массовых операций, будет семь групп, каждая из которых состоит из 1000 массовых операций. Чтобы увидеть, как выполняется группировка и выполнение, сначала выполните команду массовой вставки, а затем используйте команду Bulk.getOperations. Эта команда может использоваться для добавления трех документов по порядку.

3. Получение/чтение документов
Каждый запрос в MongoDB направлен на определенные документы. MongoDB идентифицирует документы на основе условия, определенного в запросе, а затем возвращает эти документы по назначению. Запрос на поиск документа может иметь проекцию, в которой упоминаются условия или критерии, соответствующие полям документа, который необходимо вернуть.
Запросы могут быть изменены для добавления пропусков, ограничений и порядка сортировки.
Теперь обсудим, как задается условие равенства. Используйте команду findOne() для идентификации первой записи документа. Чтобы отобразить результаты в правильном формате, вы можете использовать метод pretty.
Используйте запрос db.items.find().pretty(), чтобы определить все документы, перечисленные в коллекции, и отобразить их все в стандартном формате. Вы можете использовать пустой запрос для выбора всех документов — db.items.find( {} ) — этот запрос имеет пустое предложение запроса в конце — поэтому он идентифицирует все документы, перечисленные в коллекции.
Не указание метода поиска с документом запроса и использование пустого запроса приведут к одному и тому же результату. Таким образом, запросы db.items.find( {} ) и db.items.find() эквивалентны с точки зрения результата, для которого они используются.
Вы можете манипулировать запросом и использовать метод курсора запроса, в то время как метод подсчета позволяет узнать количество документов в коллекции, которые соответствуют вашему запросу. db.items.count()
4. Обновление документов
Вам нужно использовать метод update() для обновления документов в MongoDB. Метод обновления включает два важных элемента — запрос и обновление. Сначала идет параметр запроса, за которым следует параметр обновления. Вот пример
db.users.update({имя:"Майк"}, {возраст: 32})
Однако это неправильный способ обновления пары значений, которой в данном случае является возраст. При этом вы перезапишете все в документе. Единственное, что останется в веках. Поэтому, когда нам нужно обновить одну пару значений во всем документе, нам нужно использовать несколько ключевых слов.
db.users.update({имя: «Майк»}, {$set: {возраст: 28}})

Это ничего не перезапишет. Вы сохраните всю информацию, которая есть в документе. Будет обновлено только значение возраста.
5. Удаление документов
Используйте метод удаления — db.courses.remove() — для удаления документов из коллекции. Эта команда удалит все документы из данной коллекции. Что он не удалит, так это индексы и саму коллекцию. Иногда команда удаления может принимать запрос в качестве параметра. Если вы хотите удалить документы, соответствующие критериям, указанным в запросе, используйте команду db.items.remove({«item»: «Pen»).
Используйте команду db.items.remove({" item" : "Bag},1) для удаления только одного документа из коллекции. Чтобы удалить все документы, коллекцию и индексы, используйте команду db.courses.drop() (метод drop).
Заключение
Если вам интересно узнать больше о больших данных, ознакомьтесь с нашей программой PG Diploma в области разработки программного обеспечения со специализацией в области больших данных, которая предназначена для работающих профессионалов и включает более 7 тематических исследований и проектов, охватывает 14 языков и инструментов программирования, практические занятия. семинары, более 400 часов интенсивного обучения и помощь в трудоустройстве в ведущих фирмах.
Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.