MongoDB для чайников: как начать работать с базой без путаницы

MongoDB для новичка проще всего представить как базу, где данные хранятся не строками в таблицах, а документами, похожими на JSON. Документы лежат в коллекциях, коллекции лежат в базе данных. Если вы раньше работали только с Excel или SQL, главный поворот такой: у документа могут быть вложенные объекты и массивы, а структура не обязана быть одинаковой у каждой записи

Самый короткий старт: запустите MongoDB, откройте mongosh, создайте базу, вставьте документ и найдите его

use shop

db.products.insertOne({
  title: "Книга по MongoDB",
  price: 1200,
  tags: ["database", "backend"],
  inStock: true
})

db.products.find({ inStock: true })

Если команда find() вернула документ, вы уже сделали первый рабочий сценарий

Из чего состоит MongoDB

База данных — это контейнер для коллекций. Например, shop

Коллекция — это набор документов. Например, products, users, orders

Документ — это одна запись. Он похож на объект:

{
  title: "Книга по MongoDB",
  price: 1200,
  inStock: true
}

Поле _id MongoDB добавляет автоматически, если вы не указали его сами. Это уникальный идентификатор документа

Четыре главные операции

Добавить документ:

db.products.insertOne({ title: "Ноутбук", price: 75000 })

Найти документы:

db.products.find({ price: { $gte: 10000 } })

Обновить документ:

db.products.updateOne(
  { title: "Ноутбук" },
  { $set: { price: 72000 } }
)

Удалить документ:

db.products.deleteOne({ title: "Ноутбук" })

Эти четыре действия называются CRUD: create, read, update, delete. Для первых дней изучения MongoDB этого достаточно

Что важно понять сразу

MongoDB не создает пустую базу после команды use shop. База появится, когда вы вставите первый документ. Это нормальное поведение

В MongoDB можно хранить вложенные данные:

db.users.insertOne({
  name: "Dinar",
  contacts: {
    telegram: "@aglamov",
    city: "Sochi"
  },
  roles: ["admin", "author"]
})

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

Частые ошибки новичков

База не появилась после use

Команда use shop только переключает контекст. Вставьте документ:

db.test.insertOne({ ok: true })

find ничего не показывает

Проверьте, в той ли базе вы находитесь:

db.getName()
show collections

updateOne перезаписал не то

Не забывайте оператор $set. Без него легко перепутать обновление поля с заменой документа

Правильно:

db.products.updateOne(
  { title: "Книга" },
  { $set: { price: 1000 } }
)

Документы стали разной формы

MongoDB допускает гибкую структуру, но для проекта лучше держать единые поля. Если часть товаров хранит price, а часть cost, запросы быстро станут неудобными

Как проверить, что вы поняли основу

Создайте коллекцию tasks, добавьте три задачи, найдите только незавершенные, обновите одну задачу и удалите тестовую. Если получилось без подсказок, можно переходить к индексам, Compass, агрегациям и подключению из кода

Что почитать дальше по MongoDB

Если нужен общий маршрут по теме, откройте рубрику MongoDB. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x