MongoDB je databáza NoSQL bez schém s flexibilnými štruktúrami dokumentov, na rozdiel od databáz SQL. Používanie MongoDB ako databázy prináša mnoho výhod, od jednoduchého škálovania až po moderné databázové funkcie, ako sú transakcie.
MongoDB podporuje aj knižnice modelovania objektov (ODM), ako je Mongoose. ODM riadia dátové vzťahy, overujú schémy a konvertujú objekty na dátové modely. Uľahčujú interakciu s databázou MongoDB.
V niekoľkých krokoch sa naučíte používať MongoDB v aplikácii NestJS s vyhradeným balíkom NestJS mongoose.
Krok 1: Inštalácia závislostí
Pred použitím Mongoose vo svojej aplikácii NestJS si ju musíte nainštalovať spolu s jej natívnym balíkom NestJS.
Nainštalujte mongoose a jeho natívny balík NestJS pomocou správca balíkov npm behom:
inštalácia npm @nestjs/mangust mangusta
Krok 2: Pripojenie k MongoDB
Po dokončení inštalácie prejdite na svoj app.module.ts súbor. Potom importujte MongooseModule od @hniezdo/mongoose:
importovať { MongooseModule } od '@nestjs/mongoose';
Ďalej v poli importov zavolajte
forRoot metóda zapnutá MongooseModule a odovzdajte svoje MongoDB URI ako argument:dovoz: [MongooseModule.forRoot (process.env. MONGODB_URI)],
The forRoot zdieľa pripojenie k databáze cez všetky moduly vo vašej aplikácii. Vyžaduje voliteľný konfiguračný objekt; viac sa o tom môžete dozvedieť v Mongoose's dokumentácia možností.
Krok 3: Vytvorenie schémy Mongoose
Schéma je objekt JSON, ktorý definuje štruktúru a obsah vašich údajov. Budete si ho musieť vytvoriť, aby ste definovali, ako Mongoose ukladá vaše údaje v databáze MongoDB.
V koreňovom module vašej aplikácie vytvorte „schém“. Tento priečinok je miesto, kde budete ukladať všetky súbory schém.
Vo svojom vnútri schém priečinok, vytvorte súbor so schémou a pomenujte ho podľa konvencie pomenovania NestJS (
Potom do súboru schémy pridajte nasledujúce importy:
importovať { Prop, Schema, SchemaFactory } od "@nestjs/mongoose";
importovať { Dokument } od "mongoose";
The Prop dekoratér označí vlastnosti, ktoré anotuje, ako vlastnosť vo vašej databáze MongoDB.
The Schéma dekoratér označí triedu, ktorú anotuje, ako schému.
The SchemaFactory trieda obsahuje statické metódy používané na tvorbu modelu.
Mongoose Dokument predstavuje mapovanie typu one-to-one na dokumenty uložené v MongoDB. Budete ho potrebovať ako typovú anotáciu.
potom vytvoriť triedu, označte ho Schéma dekoratér, aby ste ju označili ako schému Mongoose a exportovali ju:
@Schema()
exporttriedaDemo{}
Ďalej vytvorte a exportujte typ spojenia s vašou triedou a dokument:
exporttypu DemoDocument = Demo & Document;
Potom pridajte požadované vlastnosti do triedy a označte ich Prop dekoratér. Môžete odovzdať voliteľný konfiguračný objekt do Prop dekoratér a nastavte nehnuteľnosť podľa potreby:
@Schema()
exporttriedaDemo{
@Prop({ požadovaný: pravda })
vlastnosť_1: reťazec;
}
The Mongoose dokumentácia pokrýva konfiguračný objekt podrobnejšie.
Nakoniec vytvorte a exportujte model Mongoose cez SchemaFactorys createForClass metódu a odovzdajte svoju triedu ako argument:
exportkonšt DemoSchema = SchemaFactory.createForClass (Ukážka);
Vaša dokončená schéma by mala vyzerať takto:
importovať { Prop, Schema, SchemaFactory } od '@nestjs/mongoose';
importovať { Dokument } od 'mongoose';exporttypu DemoDocument = Demo & Document;
@Schema()
exporttriedaDemo{
@Prop({ požadovaný: pravda })
vlastnosť_1: reťazec;@Prop({ požadovaný: pravda })
vlastnosť_2: číslo;@Prop()
vlastnosť_3: reťazec;@Prop({ požadovaný: pravda })
property_4: boolovská hodnota;
}
exportkonšt DemoSchema = SchemaFactory.createForClass (Ukážka);
Krok 4: Registrácia schémy
Prejdite do priečinka modulu a pridajte nasledujúce importy:
importovať { MongooseModule } od '@nestjs/mongoose';
importovať { Demo, DemoSchema } od '../schemas/demo.schema';
Ďalej vytvorte „dovoz” pole vnútri @modul dekoratér. Potom vo vnútri poľa zavolajte pre funkciu metóda zapnutá MongooseModule.
The pre funkciu metóda využíva rad modelov Mongoose. Odovzdajte konfiguračný objekt s a názov vlastnosť nastavená na názov vašej triedy schémy a a schému vlastnosť nastavená na vašu vytvorenú schému:
MongooseModule.forFeature([{ name: Demo.name, schéma: DemoSchema }]),
Krok 5: Vstreknutie modelu Mongoose
Ďalej budete musieť vložiť model Mongoose, aby ste umožnili dopytovanie vašej databázy volaním metód Mongoose na modeli.
Prejdite do servisnej triedy svojho modulu a pridajte nasledujúce importy:
importovať { Model } od 'mongoose';
importovať { InjectModel } od '@nestjs/mongoose';
importovať { Demo, DemoDocument } od '../schemas/demo.schema';
Použi Model rozhranie ako definíciu typu pre váš model, čím získate prístup k metódam Mongoose.
The InjectModel dekoratér vloží model Mongoose do konštruktora vašej servisnej triedy.
Ďalej vytvorte a konštruktér vo vašej triede služieb. Malo by to trvať a súkromné premenná ako argument, a Model s generickým typom DemoDocument. Svoju súkromnú premennú anotujte pomocou InjectModel dekoratér a odovzdajte názov svojej triedy schémy ako argument:
@Injekčné()
exporttriedaDemoService{
konštruktér(
@InjectModel(názov ukážky)
súkromné demoModel: Model<DemoDocument>,
) {}
}
Svoju databázu MongoDB môžete dotazovať volaním metód Mongoose vo vašej súkromnej premennej (demoModel).
Výhody používania MongoDB
Okrem svojej silnej online komunity a jednoduchého používania poskytuje MongoDB vysokú dostupnosť a stabilitu údajov. Ponúka zrýchlenú analýzu, agregáciu údajov a ďalšie, vďaka čomu je ideálnou databázou pre vaše projekty.