Ваша первая лабораторная работа с MongoDB

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Добро пожаловать в LabEx! Это ваша первая лабораторная работа по MongoDB. Не волнуйтесь, если вы никогда не использовали базу данных - мы проведем вас по каждому шагу.

Сначала разберемся, что такое MongoDB: MongoDB - это система управления базами данных, которая хранит данные в гибком, документном формате. В отличие от традиционных электронных таблиц, MongoDB позволяет организовать данные более естественным образом, аналогично тому, как вы организуете файлы в папках на своем компьютере.

В этой лабораторной работе вы научитесь:

  1. Запускать оболочку MongoDB (MongoDB shell) и понимать, что это такое
  2. Создавать свою первую базу данных и коллекцию
  3. Добавлять и просматривать данные в MongoDB
  4. Подсчитывать и удалять данные

Эти навыки станут основой вашего пути в изучении MongoDB. Давайте начнем!

Нажмите кнопку Продолжить ниже, чтобы начать лабораторную работу.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mongodb(("MongoDB")) -.-> mongodb/BasicOperationsGroup(["Basic Operations"]) mongodb(("MongoDB")) -.-> mongodb/QueryOperationsGroup(["Query Operations"]) mongodb/BasicOperationsGroup -.-> mongodb/start_mongodb_shell("Start MongoDB Shell") mongodb/BasicOperationsGroup -.-> mongodb/create_database_collection("Create Database and Collection") mongodb/BasicOperationsGroup -.-> mongodb/insert_document("Insert Document") mongodb/BasicOperationsGroup -.-> mongodb/bulk_insert_documents("Bulk Insert Documents") mongodb/BasicOperationsGroup -.-> mongodb/delete_document("Delete Document") mongodb/QueryOperationsGroup -.-> mongodb/find_documents("Find Documents") mongodb/QueryOperationsGroup -.-> mongodb/query_with_conditions("Query with Conditions") subgraph Lab Skills mongodb/start_mongodb_shell -.-> lab-420660{{"Ваша первая лабораторная работа с MongoDB"}} mongodb/create_database_collection -.-> lab-420660{{"Ваша первая лабораторная работа с MongoDB"}} mongodb/insert_document -.-> lab-420660{{"Ваша первая лабораторная работа с MongoDB"}} mongodb/bulk_insert_documents -.-> lab-420660{{"Ваша первая лабораторная работа с MongoDB"}} mongodb/delete_document -.-> lab-420660{{"Ваша первая лабораторная работа с MongoDB"}} mongodb/find_documents -.-> lab-420660{{"Ваша первая лабораторная работа с MongoDB"}} mongodb/query_with_conditions -.-> lab-420660{{"Ваша первая лабораторная работа с MongoDB"}} end

Запуск оболочки MongoDB (MongoDB shell)

Перед тем, как запустить MongoDB, нам сначала нужно открыть терминал в виртуальной машине LabEx. Сделать это можно двумя способами:

  1. Рабочий стол: Смотрите на левую сторону рабочего стола и нажмите значок, подписанный Xfce Terminal.
  2. Терминальный интерфейс: Нажмите вкладку в верхней части окна виртуальной машины LabEx, подписанную Терминальный интерфейс.
Открытие терминала

Оба метода работают одинаково хорошо - это просто разные способы доступа к одной и той же лабораторной среде. Выберите тот, который вам больше нравится!

Теперь давайте запустим оболочку MongoDB (MongoDB shell), которая похожа на панель управления нашей базой данных. Представьте себе оболочку как способ напрямую общаться с MongoDB - вы вводите команды, а MongoDB отвечает.

Чтобы запустить оболочку MongoDB, введите эту команду и нажмите Enter:

mongosh

Вы должны увидеть что-то вроде этого:

Current Mongosh Log ID: 65a7f3e5f1a1234567890abc
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+x.y.z
Using MongoDB:          x.y.z
Using Mongosh:          x.y.z
Сообщение о подключении к оболочке MongoDB

Это означает, что вы теперь подключены к MongoDB! Сообщение о подключении показывает, что MongoDB запущено на вашем компьютере (это то, что означает '127.0.0.1' - это адрес вашего компьютера к самому себе).

Давайте попробуем нашу первую команду MongoDB, чтобы увидеть, какие базы данных существуют. Введите:

show dbs

Убедитесь, что вы вводите команду в оболочке mongosh, а не в терминале.

Вы должны увидеть список баз данных, похожий на этот:

admin             40.00 KiB
config            12.00 KiB
local             40.00 KiB

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

Создание своей первой базы данных

В MongoDB данные организованы в базах данных. База данных - это как контейнер, который хранит коллекции связанной информации. Представьте ее как шкаф для хранения документов, где вы храните разные типы документов.

Чтобы создать новую базу данных (или переключиться на нее, если она уже существует), введите:

use mylab_database

Вы должны увидеть:

switched to db mylab_database

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

Давайте создадим нашу первую коллекцию с именем "users" и добавим в нее документ:

db.users.insertOne({ name: "John Doe", age: 30 })

Разберем эту команду:

  • db ссылается на нашу текущую базу данных (mylab_database)
  • users - это имя нашей коллекции, которая будет создана автоматически
  • insertOne - это команда для добавления одного документа
  • Фигурные скобки { } содержат наши данные документа с двумя полями: name и age

Вы должны увидеть что-то вроде этого:

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

MongoDB автоматически создает уникальный идентификатор (ObjectId) для каждого документа, чтобы мы могли найти его позже.

Чтобы увидеть, что мы только что добавили, введите:

db.users.find()

Вы должны увидеть:

[
  {
    _id: ObjectId("65b2f3..."),
    name: 'John Doe',
    age: 30
  }
]

Добавление дополнительных данных

Теперь, когда мы понимаем, как добавить один документ, давайте создадим другую коллекцию и добавим несколько документов сразу. На этот раз мы будем хранить информацию о книгах.

Сначала добавим одну книгу:

db.books.insertOne({
    title: "MongoDB Basics",
    author: "Jane Smith",
    year: 2023
})

MongoDB автоматически создаст коллекцию 'books', когда мы добавим первую книгу.

Теперь давайте попробуем что-то более мощное - добавление нескольких документов сразу с помощью insertMany. Это полезно, когда у вас много данных для добавления:

db.books.insertMany([
    {
        title: "Python Programming",
        author: "John Doe",
        year: 2022
    },
    {
        title: "Data Science Handbook",
        author: "Alice Johnson",
        year: 2021
    }
])

Обратите внимание на квадратные скобки [ ] - они сообщают MongoDB, что мы вставляем несколько документов сразу.

Вы должны увидеть что-то вроде этого:

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

Давайте посмотрим на все наши книги:

db.books.find()

Просмотр и подсчет данных

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

Чтобы подсчитать, сколько книг у нас есть, введите:

db.books.countDocuments()

Эта команда подсчитывает все документы в коллекции книг. Вы должны увидеть:

3

Для поиска конкретных книг мы можем использовать команду find() с "запросом" (query). Запрос - это как фильтр, который сообщает MongoDB, что мы ищем.

Чтобы найти книги определенного автора, введите:

db.books.find({ author: "John Doe" })

Часть внутри фигурных скобок { author: "John Doe" } - это наш фильтр. Он сообщает MongoDB показать только те книги, у которых автор - "John Doe".

Вы должны увидеть:

[
  {
    _id: ObjectId("65b2f4..."),
    title: 'Python Programming',
    author: 'John Doe',
    year: 2022
  }
]

Давайте попробуем другой запрос, чтобы найти книги, опубликованные в 2023 году:

db.books.find({ year: 2023 })

Удаление данных

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

Для удаления одной конкретной книги используйте deleteOne:

db.books.deleteOne({ title: "MongoDB Basics" })

Часть в фигурных скобках сообщает MongoDB, какую книгу удалить. Вы должны увидеть:

{ acknowledged: true, deletedCount: 1 }

Для удаления нескольких документов сразу по определенному условию используйте deleteMany. Давайте удалим все книги, опубликованные до 2022 года:

db.books.deleteMany({ year: { $lt: 2022 } })

Здесь $lt означает "меньше" - таким образом, мы удаляем все книги, у которых год публикации меньше 2022.

Чтобы проверить, что осталось в нашей коллекции, введите:

db.books.find()

Когда вы закончите исследование, вы можете выйти из оболочки MongoDB, введя:

exit

Итоги

Поздравляем! Вы завершили свою первую лабораторную работу с MongoDB и сделали первые шаги в мир баз данных. Давайте повторим, что вы узнали:

  1. Как запустить и использовать оболочку MongoDB
  2. Как базы данных и коллекции организовывают ваши данные
  3. Как добавлять одиночные и несколько документов
  4. Как находить конкретную информацию с помощью запросов
  5. Как удалять данные, которые вам больше не нужны

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

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