MongoDB — это база данных, но не такая, как привычные реляционные базы данных вроде MySQL или PostgreSQL. MongoDB — это документо-ориентированная база данных, основанная на NoSQL-подходе.
Основные термины MongoDB
| Термин (MongoDB) | Аналог в SQL |
|---|---|
| Database | База данных |
| Collection | Таблица |
| Document | Строка (но гибкая) |
| Field | Столбец |
Особенности MongoDB
- Гибкая структура данных: разные документы в одной коллекции могут иметь разные поля.
- Без схемы: не нужно заранее указывать, какие будут поля (в отличие от SQL).
- Хорошо масштабируется: MongoDB легко адаптируется под большие объемы данных.
- Быстро работает с JSON-подобными объектами: отлично подходит для веб-приложений, особенно на Node.js.
Расмотрим MongoDB
Первый взгяд, видим все базы данных

Далее разбирем команды в терменале:
show databases;
Показывает список всех баз данных.
use mongo
Переключение на базу данных mongo. Если такой базы нет — она будет создана при первом сохранении данных.
db.createCollection("user");
Создаёт коллекцию user в текущей базе данных.
show collections;
Показывает список коллекций (таблиц) в текущей базе данных.
db.dropDatabase();
Удаляет текущую базу данных (в данном случае mongo).


🔍 Поиск данных
Далее снова создаем базу данных, используем ее создаем колекцию

db.users.insert({
name: "John",
age: 25,
})
Показывает предупреждение, что insert() устарел. Лучше использовать insertOne()/insertMany().

db.users.insertMany([
{name: "John", age: 25,},
{name: "Mary", age: 27,},
{name: "Kate", age: 21,},
{name: "Nora", age: 30,},
]);
Добавляет сразу несколько документов (записей).

db.users.find({age:25});
Ищет всех пользователей, у кого age = 25.

db.users.find({$or: [{name: "Mary"}, {age:27}]});
Логическое ИЛИ — найдёт всех, у кого name = "Mary" или age = 27.

db.users.find({age: {$lt: 28}});
Найдёт всех, у кого возраст меньше 28 ($lt — less than).

db.users.find({age: {$gt: 28}});
Найдёт всех, у кого возраст больше 28 ($gt — greater than).

📊 Сортировка и ограничение результатов
db.users.find().sort({age: -1});
Сортировка по убыванию возраста.

db.users.find().limit(2);
Покажет только 2 первых результата.

🔎 Поиск по ID
db.users.findOne({ _id: ObjectId('682d84241c8d2207adf3de8f')});
db.users.findOne({ _id: ObjectId(‘…’) });
Найдёт одного пользователя по ID.

🔧 Обновление данных
db.users.update(
{name: "John"},
{
$set:{
name: "Ilon Mask",
age: 45,
}
}
)
Заменит имя и возраст для первого найденного John. Но метод update устарел — лучше использовать updateOne.

db.users.updateMany(
{name: "John"},
{
$set: {
name: "Ilon Mask",
age: 45
}
}
)
Обновит всех John сразу.

Спомощью db.users.find(); можно увидить все результаты

❌ Удаление данных
db.users.deleteOne({age: 45});
Удаляет одного пользователя с возрастом 45.

🔄 Массовые операции bulkWrite
db.users.bulkWrite([
{
insertOne: {
document: {fullName: "Nora", age: 30}
}
},
{
deleteOne: {
filter: {fullName: "Mary"}
}
}
])
Выполняет 2 действия:
- Добавляет нового пользователя Nora.
- Удаляет пользователя Mary.

Проверяем

🧩 Добавление массива (вложенные документы)
db.users.update(
{fullName: "Nora"},
{
$set: {
post: [
{title: 'javascript', text: 'js top'},
{title: 'mongo', text: 'mongo database'}
]
}
}
)
Добавляет в профиль Nora поле post — это массив объектов.

Проверяем db.users.find();

🔎 Поиск вложенных данных
db.users.find({
post: {
$elemMatch: {
title: "javascript"
}
}
})
Найдёт пользователя, у которого в массиве post есть элемент с title: "javascript".

Подключение базы данных MongoDB Cloud через Node.js
Первое, что начнем заходим в WebStorm -> new project

Открываем терминал и прописываем команды:
- npm init -y – создаёт
package.jsonфайл с настройками по умолчанию для проекта Node.js,-yозначает “yes to all” - npm i mongodb / npm install mongodb – устанавливает официальную библиотеку MongoDB для Node.js.
Открываем package.json и проверяем установился ли mongodb


Заходим в MongoDB Cloud (сменила проектр т.к. больше не дава сделать еще clusterid)

Выбираем Create Clusters и создаем новый кластер


Первым этапом будет нужно уставить IP address на 0.0.0.0/0


Выбираем тип подключения –> Drivers

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

Создаем фаил indexjs.js и пишем данный код:
const {MongoClient} = require('mongodb');
const client = new MongoClient('mongodb+srv://JekGuz:s5X9zFiyeaK9b4e4@cluster0.twhl3tc.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0')
const start = async () => {
try {
await client.connect();
console.log('Работает!!!')
} catch (e) {
console.log(e)
}
}
start()
Этот код подключается к базе данных MongoDB в облаке. Сначала он создаёт “клиента” для подключения, затем пробует установить соединение. Если всё прошло успешно — в консоли появится сообщение “Работает!!!”. Если произойдёт ошибка — она будет выведена на экран.

База данных подключена.
Теперь мы можем создать коллекцию и добавить в неё пользователей.
const {MongoClient} = require('mongodb');
const client = new MongoClient('mongodb+srv://JekGuz:s5X9zFiyeaK9b4e4@cluster0.twhl3tc.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({fullName: 'ulbi', age: 21})
const user = await users.findOne({fullName: 'ulbi', age: 21})
console.log(user)
} catch (e) {
console.log(e)
}
}
start()
Получаем результат и видим его в логах.

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

Все работает.

