Создание коллекции MongoDB

MongoDBBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы изучите основные шаги работы с MongoDB. Вы будете использовать MongoDB Shell (mongosh) для создания базы данных, добавления коллекции, вставки документов и выполнения базовых операций по управлению данными. Такой практический подход даст вам опыт работы с основными командами MongoDB, заложив прочную основу для более сложных задач работы с базами данных.

Запуск оболочки MongoDB и создание базы данных

Ваш первый шаг — подключиться к серверу MongoDB с помощью его интерактивной оболочки, mongosh. Этот инструмент позволяет выполнять команды непосредственно против вашего экземпляра базы данных.

В терминале запустите MongoDB Shell, выполнив команду mongosh.

mongosh

Вы увидите сообщение о подключении, указывающее, что вы находитесь в среде mongosh.

Current Mongosh Log ID: 65a7f3e8f5a8a9b3c4d5e6f7
Connecting to:           mongodb://127.0.0.1:27017/
Using MongoDB:           8.0.2
Using Mongosh:           2.2.6
...
test>

Подсказка test> указывает, что вы в настоящее время подключены к базе данных по умолчанию test. Давайте переключимся на новую базу данных для нашего проекта. В MongoDB вы можете переключиться на базу данных, которая еще не существует. Она будет автоматически создана, когда вы впервые сохраните в ней данные.

Используйте команду use для переключения на новую базу данных с именем my_store.

use my_store

Оболочка подтвердит переключение.

switched to db my_store

Чтобы подтвердить, какую базу данных вы используете в данный момент, вы можете ввести db.

db;

Вывод покажет имя текущей базы данных.

my_store

Создание коллекции и вставка документа

Теперь, когда вы находитесь в базе данных my_store, следующим шагом является создание коллекции. Коллекция — это группа документов MongoDB, аналогичная таблице в реляционной базе данных.

Давайте создадим коллекцию с именем products. Вы можете сделать это явно с помощью метода createCollection().

db.createCollection("products");

Успешная операция вернет объект, указывающий на успех.

{ ok: 1 }

Вы можете вывести список всех коллекций в текущей базе данных, чтобы убедиться, что products была создана.

show collections
products

После создания коллекции вы можете вставить свой первый документ. Документ — это BSON-объект, который представляет собой бинарно-кодированную сериализацию документов, похожих на JSON.

Используйте метод insertOne() для добавления одного документа в коллекцию products.

db.products.insertOne({
  name: "Laptop",
  price: 1200,
  category: "Electronics"
});

MongoDB подтвердит вставку и предоставит уникальный _id нового документа.

{
  acknowledged: true,
  insertedId: ObjectId("...")
}

Этот ObjectId автоматически генерируется для каждого документа и служит его первичным ключом.

Вставка нескольких документов

Часто возникает необходимость добавить несколько документов в коллекцию одновременно. Для этой цели MongoDB предоставляет метод insertMany(). Этот метод более эффективен, чем многократный вызов insertOne().

Давайте добавим еще два продукта в нашу коллекцию products. Метод insertMany() принимает в качестве аргумента массив объектов документов.

db.products.insertMany([
  {
    name: "Keyboard",
    price: 75,
    category: "Electronics"
  },
  {
    name: "Desk Chair",
    price: 150,
    category: "Furniture"
  }
]);

Вывод подтвердит, что операция была подтверждена, и перечислит значения _id для каждого из недавно вставленных документов.

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("...")
  }
}

Теперь давайте проверим общее количество документов в коллекции products. Для этого вы можете использовать метод countDocuments().

db.products.countDocuments();

Оболочка должна вернуть 3, что отражает один документ из предыдущего шага и два, которые вы только что добавили.

3

Запрос и просмотр документов

После вставки данных вы захотите их получить и просмотреть. Основным методом для запроса коллекции является find().

Чтобы просмотреть все документы в коллекции products, выполните метод find() без аргументов.

db.products.find();

Оболочка mongosh автоматически форматирует вывод для удобства чтения, отображая все три документа в вашей коллекции.

[
  {
    _id: ObjectId("..."),
    name: 'Laptop',
    price: 1200,
    category: 'Electronics'
  },
  {
    _id: ObjectId("..."),
    name: 'Keyboard',
    price: 75,
    category: 'Electronics'
  },
  {
    _id: ObjectId("..."),
    name: 'Desk Chair',
    price: 150,
    category: 'Furniture'
  }
]

Метод find() также может принимать документ запроса для фильтрации результатов. Это позволяет находить документы, соответствующие определенным критериям. Например, найдем все продукты в категории "Electronics".

db.products.find({ category: "Electronics" });

Эта команда вернет только те документы, у которых поле category имеет значение "Electronics".

[
  {
    _id: ObjectId("..."),
    name: 'Laptop',
    price: 1200,
    category: 'Electronics'
  },
  {
    _id: ObjectId("..."),
    name: 'Keyboard',
    price: 75,
    category: 'Electronics'
  }
]

Эта простая возможность фильтрации является мощным инструментом для извлечения конкретных данных из ваших коллекций.

Удаление коллекции

На последнем шаге вы узнаете, как удалить коллекцию из базы данных. Эта операция необратима и удаляет коллекцию, все ее документы и индексы. Она полезна для очистки временных данных или удаления устаревших коллекций.

Чтобы продемонстрировать это, сначала создадим временную коллекцию.

db.createCollection("temp_data");
{ ok: 1 }

Теперь используйте метод drop() для коллекции temp_data, чтобы удалить ее.

db.temp_data.drop();

Команда вернет true, если коллекция была успешно удалена.

true

Чтобы убедиться, что коллекция была удалена, вы можете снова вывести список всех коллекций в базе данных.

show collections

В выводе теперь будет показана только коллекция products, подтверждая, что temp_data была удалена.

products

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

exit;

Резюме

В этой лабораторной работе вы освоили основные навыки работы с MongoDB. Вы начали с подключения к экземпляру MongoDB с помощью оболочки mongosh. Затем вы попрактиковались в создании базы данных и коллекции, вставке одиночных и множественных документов, а также в запросе этих данных с помощью метода find(). Наконец, вы узнали, как безопасно удалять коллекцию с помощью команды drop(). Эти основные операции — Создание (Create), Чтение (Read) и Удаление (Delete) — являются строительными блоками для любого приложения, использующего MongoDB в качестве хранилища данных. Теперь вы обладаете базовыми знаниями для управления данными в среде MongoDB.