MongoDB — это документно-ориентированная база данных NoSQL.
В отличие от традиционных реляционных баз данных (например, MySQL или PostgreSQL), где данные хранятся в таблицах и строках, в MongoDB данные хранятся в виде документов в коллекциях.
Основные характеристики:
- Данные хранятся в формате BSON (расширенный JSON).
- Гибкая схема: можно хранить документы с разной структурой в одной коллекции.
- Хорошо подходит для проектов с быстро меняющейся структурой данных, масштабируемых приложений и больших объёмов информации.
Коллекция — это группа документов.
Можно условно считать коллекцию аналогом таблицы в реляционной базе данных.
Особенности:
- В одной коллекции можно хранить документы с разной структурой.
- Коллекции создаются автоматически при добавлении в них первого документа.
- Коллекции объединяют данные по смыслу, например:
users
orders
products
Документ — это единица хранения данных в MongoDB.
По сути, это структура в формате JSON (или BSON) с парой ключ-значение.
Пример документа:
{
"_id": "664c5b60c98df1a02a",
"name": "Алексей",
"age": 28,
"email": "aleksey@example.com",
"hobbies": ["футбол", "чтение", "путешествия"]
}
Особенности:
- Каждый документ имеет уникальный идентификатор
_id
. - Можно хранить вложенные объекты и массивы.
- Структура документа может отличаться от других в той же коллекции.
Создание БД
use databaseName
Данная команда переключает на существующую бд.
Но если бд не существует то она создаст и переключит

Создание колекции
db.createCollection("users")

Добавление записи в колекцию
db.users.insert({
name:"Deniel",
age:25
})

Добавление большого кол-ва записей в колекцию
db.users.insertMany([
{name:"Nastja", age:24},
{name:"Gabriel", age:19},
{name:"Gerke", age:20},
{name:"Azam", age:91},
{name:"Zhan", age:19},
{name:"Anja", age:18},
])

Найти пользователей, у которых имя Zhan или возраст 19.
db.users.find({$or:[{name:"Zhan"},{age: 19}]})

Найти всех, у кого возраст меньше 20
db.users.find({age:{$lt:20}})

Операторы сравнения:
$lt -- меньше
$gt -- больше
$lte -- меньше или равно
$gte -- больше или равно
$ne -- не равно
Сортировка по убыванию возраста.
sort({age:-1})

Сортировка по возрастанию возраста.
sort({age:1})

Поиск по ObjectId
:
db.users.findOne({_id:ObjectId("682dad488a354e6c0501f922")})

Обновление данных:
db.users.updateOne(
{name:"Zhan"},
{
$set: {
name: "ilon mark",
age:27
}
}
)

Множественные операции (bulkWrite):
db.users.bulkWrite([
{
insertOne: {
document:{name: "Aloha", age:27}
}
},
{
deleteOne: {
filter: {fullname: "Zhan"}
}
}
])

Добавление вложенного массива:
db.users.update(
{fullname: "zhan"},
{
$set: {
posts:[
{title: 'javascript', text: 'js top'},
{title: 'mongo', text: 'mongo database'}
]
}
}
)

Поиск вложенных документов:
db.users.findOne(
{fullname:"Zhan"},
{posts:1}
)

Пример подключения к базе данных MongoDB Cloud
const {MongoClient} = require('mongodb');
const client = new MongoClient('mongodb+srv://zangerke3:rSjr1tfwLPax6rq9@cluster1.mhy3ahw.mongodb.net/?retryWrites=true&w=majority&appName=Cluster1')
const start = async () => {
try {
await client.connect();
console.log('Connected');
await client.db().createCollection('users')
const users = client.db().collection('users');
await users.insertOne({name: 'John Doe', age: 15})
const user = await users.findOne({name: 'John Doe'})
console.log(user)
}
catch (error) {
console.log(error);
}
}
start()
Описание данного кода
const {MongoClient} = require('mongodb');
Импортируем класс MongoClient из mongodb. Класс нужен для установки соединения с базой данных MongoDB
const client = new MongoClient('mongodb+srv://zangerke3:rSjr1tfwLPax6rq9@cluster1.mhy3ahw.mongodb.net/?retryWrites=true&w=majority&appName=Cluster1')
Создаём новый экземпляр клиента MongoDB, указывая строку подключения к облачному MongoDB. В строке подключения содержатся:
- имя пользователя (zangerke3),
- пароль (rSjr1tfwLPax6rq9),
- адрес кластера,
- дополнительные параметры.
const start = async () => {
try {
await client.connect();
console.log('Connected');
Определяем функцию которая устанавливает соединение с MongoDB с помощью client.connect(). Если подключение успешно, принтует сообщение “Connected”.
await client.db().createCollection('users')
Создаёт новую коллекцию с именем users в бд по умолчанию
const users = client.db().collection('users');
получение коллекции для работы
await users.insertOne({name: 'John Doe', age: 15})
Вставляет один новый документ в коллекцию users.
const user = await users.findOne({name: 'John Doe'})
console.log(user)
Ищет документ в коллекции users, где поле name равно “John Doe”.
В результат (найденный документ) сохраняется в переменную user и выводится в консоль.
}
catch (error) {
console.log(error);
}
}
Если возникает ошибка она попадает в блок catch и выводится в консоль.
Вызывается функция start для запуска всего описанного выше процесса.
Итог:
Этот скрипт подключается к MongoDB в облаке, создаёт коллекцию users, добавляет в неё одного пользователя с именем и возрастом, ищет и выводит этого пользователя.