MongoDB on erinevalt SQL-andmebaasidest skeemivaba NoSQL-i andmebaas, millel on paindlikud dokumendistruktuurid. MongoDB kasutamine andmebaasina toob palju eeliseid alates lihtsast skaleerimisest kuni tänapäevaste andmebaasi funktsioonideni, nagu tehingud.

MongoDB toetab ka objektiandmete modelleerimise (ODM) teeke, nagu Mongoose. ODM-id haldavad andmesuhteid, valideerivad skeeme ja teisendavad objekte andmemudeliteks. Need muudavad MongoDB andmebaasiga suhtlemise lihtsamaks.

Mõne sammuga saate teada, kuidas kasutada MongoDB-d NestJS-i rakenduses spetsiaalse NestJS-i mongoose-paketiga.

1. samm: sõltuvuste installimine

Enne Mongoose'i kasutamist oma NestJS-i rakenduses peate selle installima koos oma NestJS-i algpaketiga.

Installige mongoose ja selle loomulik NestJS-pakett, kasutades npm paketihaldur joostes:

npm installimine @nestjs/mongoose mangoose

2. samm: MongoDB-ga ühenduse loomine

Kui installimine on lõppenud, navigeerige oma app.module.ts faili. Seejärel importige Mongoose moodul alates @pesa/mongoose:

instagram viewer
importida { MongooseModule } alates '@nestjs/mongoose';

Järgmisena helistage oma impordimassiivis numbrile forRoot meetod sisse lülitatud Mongoose moodul ja edastage argumendina oma MongoDB URI:

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

The forRoot meetod jagab andmebaasiühendust kõigi teie rakenduse moodulite kaudu. See võtab valikulise konfiguratsiooniobjekti; saate selle kohta rohkem teada saada Mongoose oma valikute dokumentatsioon.

3. samm: Mongoose skeemi loomine

Skeem on JSON-objekt, mis määrab teie andmete struktuuri ja sisu. Peate selle looma, et määrata, kuidas Mongoose teie andmeid MongoDB andmebaasis salvestab.

Looge oma rakenduse juurmoodulis "skeemid” kausta. See kaust on koht, kuhu salvestate kõik oma skeemifailid.

Sinu sees skeemid kaust, looge skeemifail ja nimetage see NestJS-i nimetamiskokkuleppe abil (.schema.ts).

Järgmisena lisage oma skeemifaili järgmised impordid:

importida { Prop, Schema, SchemaFactory } alates "@nestjs/mongoose";
importida { dokument } alates "mongoose";

The Prop dekoraator märgib atribuudid, mida ta märgib, teie MongoDB andmebaasis atribuutidena.

The Skeem dekoraator märgib klassi, mille ta annoteerib, skeemina.

The SchemaFactory klass sisaldab staatilisi meetodeid, mida kasutatakse mudeli loomiseks.

Mongoose Dokument tähistab MongoDB-s talletatud dokumentide üks-ühele vastendamist. Teil on seda vaja tüübimärkena.

Siis luua klass, märkige see nupuga Skeem dekoraator, et märkida see Mongoose skeemiks ja eksportida:

@Skeemi()
eksportidaklassDemo{}

Järgmiseks looge ja eksportige oma klassiga ametiühingutüüp ja Dokument:

eksportidatüüp DemoDocument = Demo ja dokument;

Seejärel lisage soovitud atribuudid klassi ja lisage neile märkused Prop dekoraator. Saate edastada valikulise konfiguratsiooniobjekti Prop dekoraator ja seadke kinnisvara vastavalt vajadusele:

@Skeemi()
eksportidaklassDemo{
@Prop({ nõutud: tõsi })
omadus_1: string;
}

The mangust dokumentatsioon hõlmab konfiguratsiooniobjekti üksikasjalikumalt.

Lõpuks looge ja eksportige Mongoose'i mudel rakenduse kaudu SchemaFactory’s CreateForClass meetod ja edastage oma klass argumendina:

eksportidakonst DemoSchema = SchemaFactory.createForClass (Demo);

Teie täidetud skeem peaks välja nägema järgmine:

importida { Prop, Schema, SchemaFactory } alates '@nestjs/mongoose';
importida { dokument } alates "mongoose";

eksportidatüüp DemoDocument = Demo ja dokument;

@Skeemi()
eksportidaklassDemo{
@Prop({ nõutud: tõsi })
omadus_1: string;

@Prop({ nõutud: tõsi })
omadus_2: number;

@Prop()
omadus_3: string;

@Prop({ nõutud: tõsi })
property_4: tõeväärtus;
}

eksportidakonst DemoSchema = SchemaFactory.createForClass (Demo);

4. samm: skeemi registreerimine

Liikuge oma mooduli kausta ja lisage järgmised impordid:

importida { MongooseModule } alates '@nestjs/mongoose';
importida { Demo, Demoskeem } alates '../schemas/demo.schema';

Järgmisena looge "import” massiivi sees @moodul dekoraator. Seejärel helistage massiivi sees numbrile funktsiooni jaoks meetod sisse lülitatud Mongoose moodul.

The funktsiooni jaoks meetod hõlmab hulga Mongoose mudeleid. Konfiguratsiooniobjekti sisestamine a-ga nimi atribuut on seatud teie skeemiklassi nimele ja a skeem atribuut on seatud teie loodud skeemile:

Mongoose moodul.ForFeature([{ nimi: Demo.nimi, skeem: DemoSchema }]),

5. samm: Mongoose mudeli süstimine

Järgmiseks peate sisestama Mongoose'i mudeli, et võimaldada oma andmebaasi päringuid teha, kutsudes mudelil Mongoose'i meetodeid.

Liikuge oma mooduli teenindusklassi ja lisage järgmised impordid:

importida { Mudel } alates "mongoose";
importida { InjectModel } alates '@nestjs/mongoose';
importida { Demo, demodokument } alates '../schemas/demo.schema';

Kasuta Mudel liides teie mudeli tüübimääratlusena, mis annab sellele juurdepääsu Mongoose meetoditele.

The InjectModel dekoraator süstib Mongoose mudeli teie teenindusklassi konstruktorisse.

Järgmisena looge a konstruktor oma teenindusklassi sees. See peaks võtma a privaatne muutuja argumendina, a Mudel üldise tüübiga Demodokument. Märkige oma privaatne muutuja nupuga InjectModel dekoraator ja edastage argumendina oma skeemiklassi nimi:

@Süstitav()
eksportidaklassDemoteenus{
konstruktor(
@InjectModel(Demo.name)
privaatne demoModel: mudel<Demodokument>,
) {}
}

Saate oma MongoDB andmebaasi päringuid teha, kutsudes välja Mongoose meetodid oma privaatmuutujas (demoModel).

MongoDB kasutamise eelised

Lisaks tugevale võrgukogukonnale ja kasutuslihtsusele pakub MongoDB andmete kõrget kättesaadavust ja stabiilsust. See pakub kiirendatud analüütikat, andmete koondamist ja palju muud, muutes selle teie projektide jaoks ideaalseks andmebaasiks.