МонгоДБ је НоСКЛ база података без шеме са флексибилним структурама докумената, за разлику од СКЛ база података. Коришћење МонгоДБ-а као базе података доноси многе предности, од лаког скалирања до модерних функција базе података као што су трансакције.

МонгоДБ такође подржава библиотеке моделирања података објеката (ОДМ), као што је Монгоосе. ОДМ-ови управљају односима података, потврђују шеме и претварају објекте у моделе података. Они олакшавају интеракцију са МонгоДБ базом података.

У неколико корака научићете како да користите МонгоДБ у НестЈС апликацији са наменским пакетом НестЈС мунгос.

Корак 1: Инсталирање зависности

Пре него што употребите Монгоосе у вашој НестЈС апликацији, морате га инсталирати заједно са његовим изворним НестЈС пакетом.

Инсталирајте мунгоосе и његов изворни НестЈС пакет користећи нпм менаџер пакета покретањем:

нпм инсталл @нестјс/мунгоосе мунгоосе

Корак 2: Повезивање са МонгоДБ

Када се инсталација заврши, идите на свој апп.модуле.тс фајл. Затим увезите МонгоосеМодуле из @нест/мунгоосе:

увоз { МонгоосеМодуле} из '@нестјс/монгоосе';

Затим, у низу увоза, позовите форРоот метод на МонгоосеМодуле и проследите свој МонгоДБ УРИ као аргумент:

увози: [МонгоосеМодуле.форРоот (процесс.енв. МОНГОДБ_УРИ)],

Тхе форРоот метод дели везу са базом података кроз све модуле у вашој апликацији. Потребно је опциони објекат конфигурације; можете сазнати више о томе у Монгоосе'с документација о опцијама.

Корак 3: Креирање шеме Монгоосе

Шема је ЈСОН објекат који дефинише структуру и садржај ваших података. Мораћете да га креирате да бисте дефинисали како Монгоосе чува ваше податке у бази података МонгоДБ.

У основном модулу ваше апликације креирајте „шеме” фолдер. Ова фасцикла је место где ћете чувати све своје датотеке шеме.

Инсиде иоур шеме фолдер, креирајте датотеку шеме и именујте је користећи НестЈС конвенцију именовања (.сцхема.тс).

Затим додајте следеће увозе у датотеку шеме:

увоз { Проп, Сцхема, СцхемаФацтори } из „@нестјс/мунгоосе“;
увоз { Документ } из "Мунгос";

Тхе Проп декоратор означава својства која бележи као својство у вашој МонгоДБ бази података.

Тхе Шема декоратор означава класу коју бележи као шему.

Тхе СцхемаФацтори класа садржи статичке методе које се користе за креирање модела.

Тхе Монгоосе Документ представља мапирање један-на-један у документе који су ускладиштени у МонгоДБ-у. Требаће вам као напомена типа.

Онда, креирати класу, означите га са Шема декоратер да га означи као Монгоосе шему и извезе га:

@Сцхема()
извозкласаДемо{}

Затим креирајте и извезите тип синдиката са својом класом и документ:

извозтип ДемоДоцумент = Демо & Доцумент;

Затим додајте жељена својства у класу и означите их са Проп декоратер. Можете проследити опциони конфигурациони објекат у Проп декоратер и подесите својство по потреби:

@Сцхема()
извозкласаДемо{
@Проп({ потребан: истинито })
својство_1: стринг;
}

Тхе Мунгос документација детаљније покрива објекат конфигурације.

Коначно, креирајте и извезите модел Монгоосе преко СцхемаФацтори’с цреатеФорЦласс метод и проследите своју класу као аргумент:

извозконст ДемоСцхема = СцхемаФацтори.цреатеФорЦласс (Демо);

Ваша завршена шема би требало да изгледа овако:

увоз { Проп, Сцхема, СцхемаФацтори } из '@нестјс/монгоосе';
увоз { Документ } из 'Мунгос';

извозтип ДемоДоцумент = Демо & Доцумент;

@Сцхема()
извозкласаДемо{
@Проп({ потребан: истинито })
својство_1: стринг;

@Проп({ потребан: истинито })
својство_2: број;

@Проп()
својство_3: стринг;

@Проп({ потребан: истинито })
својство_4: боолеан;
}

извозконст ДемоСцхема = СцхемаФацтори.цреатеФорЦласс (Демо);

Корак 4: Регистрација шеме

Идите до фасцикле вашег модула и додајте следеће увозе:

увоз { МонгоосеМодуле} из '@нестјс/монгоосе';
увоз { Демо, ДемоСцхема } из '../сцхемас/демо.сцхема';

Затим креирајте „увози” низ унутар @модуле декоратер. Затим, унутар низа, позовите форФеатуре метод на МонгоосеМодуле.

Тхе форФеатуре метода обухвата низ модела Монгоосе. Проследите конфигурациони објекат са а име својство постављено на име ваше класе шеме, и а шема својство постављено на вашу креирану шему:

МонгоосеМодуле.форФеатуре([{ наме: Демо.наме, сцхема: ДемоСцхема }]),

Корак 5: Убризгавање модела Монгоосе

Затим ћете морати да убаците Монгоосе модел да бисте омогућили испитивање ваше базе података позивањем Монгоосе метода на моделу.

Идите до сервисне класе вашег модула и додајте следеће увозе:

увоз { Модел } из 'Мунгос';
увоз { ИњецтМодел } из '@нестјс/монгоосе';
увоз { Демо, ДемоДоцумент } из '../сцхемас/демо.сцхема';

Користити Модел интерфејс као дефиниција типа за ваш модел, дајући му приступ Монгоосе методама.

Тхе ИњецтМодел декоратер убризгава модел Монгоосе у конструктор ваше класе услуге.

Затим креирајте а конструктор унутар ваше класе услуге. Требало би да траје а приватни променљива као аргумент, а Модел са генеричким типом ДемоДоцумент. Означите своју приватну променљиву са ИњецтМодел декоратор и проследите име класе ваше шеме као аргумент:

@Ињецтабле()
извозкласаДемоСервице{
конструктор(
@ИњецтМодел(Демо.наме)
приватни демоМодел: Модел<ДемоДоцумент>,
) {}
}

Можете да упитате своју МонгоДБ базу података тако што ћете позвати Монгоосе методе на вашој приватној променљивој (демоМодел).

Предности коришћења МонгоДБ-а

Поред јаке онлајн заједнице и лакоће коришћења, МонгоДБ обезбеђује високу доступност и стабилност података. Нуди убрзану аналитику, агрегацију података и још много тога, што га чини идеалном базом података за ваше пројекте.