NoSQL / MongoDB

Что такое MongoDB?

MongoDB — это популярная NoSQL база данных, в которой данные хранятся в виде документов (структур, похожих на JSON) внутри коллекций. В отличие от реляционных баз данных (таких как MySQL), MongoDB не требует фиксированной схемы, что делает её гибкой и удобной для быстрого прототипирования и масштабируемых проектов.
  • База данных (Database) — контейнер, который содержит коллекции.
  • Коллекция (Collection) — аналог таблицы, но без строгой схемы. Хранит документы.
  • Документ (Document) — основная единица хранения данных, представляет собой объект в формате JSON (или BSON в MongoDB).
{
  "name": "Iryna",
  "age": 29,
  "email": "iryna@example.com"
}

Основные команды MongoDB

1. Создание базы данных:

use myDatabase

Если базы ещё нет — она будет создана автоматически после добавления данных.

2. Создание коллекции:

db.createCollection("users")
Обычно коллекция создается автоматически при вставке первого документа:
db.users.insert({
    name: "John",
    age: 25,
})

3. Добавление документов:

Один документ:

db.users.insertOne({ name: "Alice", age: 28, email: "alice@mail.com" })

Несколько документов:

db.users.insertMany([
  { name: "Bob", age: 22 },
  { name: "Emma", age: 35 }
])

4. Поиск документов

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

db.users.find()

Форматированный вывод:

db.users.find().pretty()

Поиск с условием:

db.users.find({ age: { $gt: 25 } })  // Возраст больше 25
db.users.find({ name: "Alice" })     // Имя равно Alice

5. Удаление:

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

db.users.deleteOne({ name: "Bob" })

Удалить все документы, соответствующие условию:

db.users.deleteMany({ age: { $lt: 30 } })  // Младше 30

6. Обновление:

Обновить одно поле:

db.users.updateOne(
  { name: "Emma" },
  { $set: { age: 29 } }
)

Добавление нового поля:

db.users.updateOne(
  { name: "Emma" },
  { $set: { city: "Tallinn" } }
)

7. Сортировка и ограничения:

db.users.find().sort({ age: 1 })       // Сортировка по возрасту по возрастанию
db.users.find().limit(2)               // Первые 2 записи

Подключение базы данных MongoDB Cloud через Node.js

Создаем новый проект в WebStorm и выбираем Node.js:

В терминале прописываем команды:

// создаёт package.json файл с настройками по умолчанию для Node.js,  y означает “yes to all”

npm init -y 

// устанавливает официальную библиотеку MongoDB для Node.js

npm i mongodb / npm install mongodb 


Открываем package.json и проверяем установился ли mongodb:

Создаем аккаунт или заходим в MongoDB Cloud и вводим username и password:

IP адрес вводим 0.0.0.0/0:

 Тип подключения –> Drivers

Копируем ссылку для подключения базы данных к Node.js:

Создаем файл indexjs.js, в MongoClient вставляем ссылку и <db_password> меняем и вписываем свой созданный пароль, создаём коллекцию и добавить в неё пользователей.

const { MongoClient } = require('mongodb');

const client = new MongoClient('mongodb+srv://kotiukir:111111111@cluster0.ivcs9hj.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0')

const start = async () => {
    try {
        await client.connect();
        console.log('Работает')
        await client.db().createCollection('users')
        const users = client.db().collection('users');
        await users.insertOne({name: 'Iryna', age: 29})
        const user = await users.findOne({name: 'Iryna'})
        console.log(user)
    } catch (e) {
        console.log(e)
    }
}
start()

Проверяем через графическую оболочку в MongoDB Cloud: