Mongoose для mongodb, stepan suvorov blog

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 можна робити:

  • складну валідацію
  • видалення документів по залежностям
  • виклик кастомізірованих подій
  • нотіфікейшени