Перації з базою даних в Node.js
MongoDB
MongoDB - одна з найпопулярніших нереляційних баз даних, яка зберігає дані у форматі документів, використовуючи JSON-подібні об'єкти. Це спростить наше знайомство із цією БД, оскільки вона працює із даними дуже подібно до того, як ви вже робили це в рамках курсу по фронтенду.
Ось кілька переваг MongoDB:
- Гнучкість схеми:MongoDB дозволяє легко зберігати дані без потреби строго визначеної схеми. Кожен документ може мати власну унікальну структуру, що робить базу даних більш гнучкою та адаптивною до змін в структурі даних.
- При роботі із MongoDB є можливість визначати схему, яка буде допомагати нам записувати дані в базу, а також формувати із них певну структуру при їх зчитуванні, але вона не гарантує, що в базі даних кожен запис буде відповідати цій схемі. Цим ця база відрізняється від реляційних СУБД.
- Швидкодія:Завдяки своїй архітектурі та індексам MongoDB може швидко виконувати операції читання та запису великих обсягів даних.
- Масштабованість:MongoDB легко масштабується, дозволяючи горизонтально розширювати систему внаслідок додавання нових серверів (шардингу).
- Реплікація(створення копії) та висока доступність:MongoDB підтримує автоматичну реплікацію даних на кількох серверах, що забезпечує високу доступність та стійкість до відмов. Цей пункт характеризує можливість її використання у високонавантажених системах.
- Спрощене програмування:Завдяки використанню BSON (Binary JSON), взаємодія з базою даних стає природньою для розробників, які працюють з мовами програмування, такими як JavaScript, Python, або Node.js.
Підключення node.js
модуль
mpn instal mongoose
підключення
// src/db/initMongoDB.js
import mongoose from 'mongoose';
import { env } from '../utils/env.js';
export const initMongoDB = async () => {
try {
const user = env('MONGODB_USER');
const pwd = env('MONGODB_PASSWORD');
const url = env('MONGODB_URL');
const db = env('MONGODB_DB');
await mongoose.connect(
`mongodb+srv://${user}:${pwd}@${url}/${db}?retryWrites=true&w=majority`,
);
console.log('Mongo connection successfully established!');
} catch (e) {
console.log('Error while setting up mongo connection', e);
throw e;
}
};
Додаткові утіліти
MongoDB Compass(GUI) - графічний інтерфейс для роботи з MongoDB, який дозволяє розробникам взаємодіяти з базою даних. Інтерфейс надає зручність у виконанні операцій з даними, включаючи перегляд, редагування та інше. Mongo Compass також дозволяє створювати складні запити, візуалізувати результати та безпечно керувати доступом до бази даних.
Рекомендації
Доступ до БД з певних IP
Якщо до бази повинні мати доступ не тільки з того ж ip звідки її і створили, то необхідно окремо дозволити доступ до БД з усіх ip Виберіть свій кластер:
У головній панелі керування виберіть проект, у якому знаходиться ваш кластер. Натисніть на кластер, до якого ви хочете надати доступ. Налаштування мережевого доступу:
У меню зліва виберіть Network Access (Доступ до мережі). Натисніть на кнопку Add IP Address (Додати IP-адресу). Додати IP-адресу:
У вікні, що з'явиться, введіть 0.0.0.0/0 у поле IP-адреси, щоб дозволити доступ з будь-якого IP-адреси. За потреби можете додати опис для цього правила в полі Comment (Коментар).