Mongoose для mongodb, stepan suvorov blog

Традиційно почнемо розбір зі створення пісочниці.
Mongoose встановлюється як модуль до node.js:
Після установки перевіряємо підключається чи модуль, пишемо в test.js файлик наступний код:
і якщо все пройшло успішно, то має видати поточну версію mongoose.
Щоб підключиться до бази, створюємо з'єднання:
і відкриваємо його:
У mongoose все зав'язано на 2х ключових поняттях Схема (Schema) - опис сутності та Модель - сама сутність.
Кожне поле карактерізуется типом SchemaTypes і може мати додаткові характеристики: default, min і max (для Number), match і enum (для String), index і unique (для індексів).
Тепер створимо модель за схемою:
і примірник для даної моделі:
ми можемо розширити схему методами:
Щоб зберегти нашого користувача в базу, ми повинні викликати метод save:
Подивитися що ми насохранялі в базу і вивести записи для конкретної колекції (моделі) можна так:
якщо нам необхідно додати умова для вибірки, тоді так:
Крім звичайних методів схема дозволяє додавати сеттери і геттери (магічні методи):
Крім set ми ще можемо поставити get і default магічні методи.
Також схема дозволяє на кожен метод повісити тригер з колбеком, який буде виконаний до виполененія самого методу. Такий зручний механізм, який дозволяє уникнути великої вкладеності, в MongoDb називається Middleware.
Реалізується в такий спосіб:
як приклад візьмемо метод save:
по next () запускається наступний тригер.
Використовуючи даний підхід ми можемо організувати механізм виклику і передачі помилок:
Також за допомогою Middleware можна робити:
- складну валідацію
- видалення документів по залежностям
- виклик кастомізірованих подій
- нотіфікейшени