Введение
В этой лабораторной работе вы изучите основные шаги работы с 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.

