MongoDB ir NoSQL datu bāze bez shēmām ar elastīgām dokumentu struktūrām, atšķirībā no SQL datu bāzēm. MongoDB kā datu bāzes izmantošana sniedz daudzas priekšrocības, sākot no vienkāršas mērogošanas līdz modernām datu bāzes funkcijām, piemēram, darījumiem.

MongoDB atbalsta arī objektu datu modelēšanas (ODM) bibliotēkas, piemēram, Mongoose. ODM pārvalda datu attiecības, validē shēmas un pārvērš objektus datu modeļos. Tie atvieglo mijiedarbību ar MongoDB datu bāzi.

Veicot dažas darbības, jūs uzzināsit, kā lietot MongoDB NestJS lietojumprogrammā ar speciālo NestJS mongoose pakotni.

1. darbība: atkarību instalēšana

Pirms Mongoose izmantošanas savā NestJS lietojumprogrammā, tā ir jāinstalē kopā ar tās sākotnējo NestJS pakotni.

Instalējiet mongoose un tā sākotnējo NestJS pakotni, izmantojot npm pakotņu pārvaldnieks skrienot:

npm instalēšana @nestjs/mangusts mangusts

2. darbība: izveidojiet savienojumu ar MongoDB

Kad instalēšana ir pabeigta, dodieties uz savu app.module.ts failu. Pēc tam importējiet MongooseModule no @ligzda/mangusts:

imports { MongooseModule } no '@nestjs/mangoose';

Pēc tam savā importēšanas masīvā izsauciet forRoot metode ieslēgta MongooseModule un nododiet savu MongoDB URI kā argumentu:

imports: [MongooseModule.forRoot (process.env. MONGODB_URI)],

The forRoot metode koplieto datu bāzes savienojumu caur visiem jūsu lietojumprogrammas moduļiem. Tas aizņem neobligātu konfigurācijas objektu; jūs varat uzzināt vairāk par to Mangusts opciju dokumentācija.

3. darbība: izveidojiet Mongoose shēmu

Shēma ir JSON objekts, kas nosaka jūsu datu struktūru un saturu. Tā būs jāizveido, lai definētu, kā Mongoose saglabā jūsu datus MongoDB datu bāzē.

Lietojumprogrammas saknes modulī izveidojiet "shēmas” mapi. Šajā mapē tiks glabāti visi shēmas faili.

Tavā iekšienē shēmas mapē, izveidojiet shēmas failu un piešķiriet tam nosaukumu, izmantojot NestJS nosaukšanas konvenciju (.schema.ts).

Pēc tam pievienojiet shēmas failam tālāk norādītos importētos datus.

imports { Prop, Schema, SchemaFactory } no "@nestjs/mangoose";
imports {Dokuments} no "mangusts";

The Prop dekorators atzīmē rekvizītus, ko tas anotē kā īpašumu jūsu MongoDB datu bāzē.

The Shēma dekorators atzīmē klasi, ko tas anotē kā shēmu.

The SchemaFactory klase satur statiskas metodes, ko izmanto modeļa izveidei.

Mangusts Dokuments ir viens pret vienu kartēšanu dokumentiem, kas glabājas MongoDB. Jums tā būs nepieciešama kā tipa anotācija.

Tad izveidot klasi, atzīmējiet to ar Shēma dekorētājs, lai atzīmētu to kā Mongoose shēmu un eksportētu to:

@Schema()
eksportētklasēDemonstrācija{}

Pēc tam izveidojiet un eksportējiet arodbiedrības veidu ar savu klasi un Dokuments:

eksportētveids DemoDocument = Demo & Document;

Pēc tam pievienojiet klasei vēlamos rekvizītus un anotējiet tos ar Prop dekorators. Varat nodot izvēles konfigurācijas objektu Prop dekoratoru un uzstādiet īpašumu pēc vajadzības:

@Schema()
eksportētklasēDemonstrācija{
@Prop({ nepieciešams: taisnība })
rekvizīts_1: virkne;
}

The Mangusts dokumentācija aptver konfigurācijas objektu sīkāk.

Visbeidzot, izveidojiet un eksportējiet Mongoose modeli, izmantojot SchemaFactory’s CreateForClass metodi un nododiet savu klasi kā argumentu:

eksportētkonst DemoSchema = SchemaFactory.createForClass (Demo);

Jūsu pabeigtajai shēmai vajadzētu izskatīties šādi:

imports { Prop, Schema, SchemaFactory } no '@nestjs/mangoose';
imports {Dokuments} no "mangusts";

eksportētveids DemoDocument = Demo & Document;

@Schema()
eksportētklasēDemonstrācija{
@Prop({ nepieciešams: taisnība })
rekvizīts_1: virkne;

@Prop({ nepieciešams: taisnība })
īpašība_2: numurs;

@Prop()
īpašība_3: virkne;

@Prop({ nepieciešams: taisnība })
property_4: Būla;
}

eksportētkonst DemoSchema = SchemaFactory.createForClass (Demo);

4. darbība: shēmas reģistrēšana

Pārejiet uz sava moduļa mapi un pievienojiet šādus importētos failus:

imports { MongooseModule } no '@nestjs/mangoose';
imports { Demo, DemoSchema } no '../schemas/demo.schema';

Pēc tam izveidojiet "imports” masīvs iekšpusē @modulis dekorators. Pēc tam masīva iekšpusē zvaniet uz funkcijai metode ieslēgta MongooseModule.

The funkcijai metode izmanto vairākus Mongoose modeļus. Nododiet konfigurācijas objektu ar a nosaukums rekvizīts, kas iestatīts uz jūsu shēmas klases nosaukumu, un a shēma rekvizīts, kas iestatīts jūsu izveidotajā shēmā:

MongooseModule.ForFeature([{nosaukums: Demo.nosaukums, shēma: DemoSchema }]),

5. solis: Mangoose modeļa injicēšana

Pēc tam jums būs jāievada Mongoose modelis, lai iespējotu datu bāzes vaicājumu veikšanu, modelī izsaucot Mongoose metodes.

Pārejiet uz sava moduļa pakalpojumu klasi un pievienojiet tālāk norādītos importētos datus.

imports { Modelis } no "mangusts";
imports { InjectModel } no '@nestjs/mangoose';
imports { Demo, DemoDocument } no '../schemas/demo.schema';

Izmantojiet Modelis interfeiss kā tipa definīcija jūsu modelim, nodrošinot tam piekļuvi Mongoose metodēm.

The InjectModel dekorators ievada Mongoose modeli jūsu servisa klases konstruktorā.

Pēc tam izveidojiet a konstruktors jūsu pakalpojumu klasē. Tam vajadzētu ņemt a Privāts mainīgais kā arguments, a Modelis ar vispārēju veidu Demodokuments. Anotējiet savu privāto mainīgo ar InjectModel dekoratoru un nododiet savas shēmas klases nosaukumu kā argumentu:

@Injicējams()
eksportētklasēDemoService{
konstruktors(
@InjectModel(Demo.name)
privāts demoModelis: modelis<Demodokuments>,
) {}
}

Varat vaicāt savā MongoDB datubāzē, izsaucot Mongoose metodes savā privātajā mainīgajā (demoModelis).

MongoDB izmantošanas priekšrocības

Papildus spēcīgajai tiešsaistes kopienai un vienkāršai lietošanai MongoDB nodrošina augstu datu pieejamību un stabilitāti. Tā piedāvā paātrinātu analīzi, datu apkopošanu un daudz ko citu, padarot to par ideālu datubāzi jūsu projektiem.