MongoDB yra NoSQL duomenų bazė be schemų su lanksčiomis dokumentų struktūromis, skirtingai nei SQL duomenų bazės. MongoDB naudojimas kaip duomenų bazė suteikia daug privalumų – nuo lengvo mastelio keitimo iki šiuolaikinių duomenų bazės funkcijų, tokių kaip operacijos.
MongoDB taip pat palaiko objektų duomenų modeliavimo (ODM) bibliotekas, tokias kaip Mongoose. ODM valdo duomenų ryšius, patvirtina schemas ir konvertuoja objektus į duomenų modelius. Jie palengvina sąveiką su MongoDB duomenų baze.
Atlikę kelis veiksmus sužinosite, kaip naudoti MongoDB „NestJS“ programoje su tam skirtu „NestJS mongoose“ paketu.
1 veiksmas: Priklausomybių diegimas
Prieš naudodami „Mongoose“ savo „NestJS“ programoje, turite ją įdiegti kartu su savo „NestJS“ paketu.
Įdiekite „mongoose“ ir jo savąjį „NestJS“ paketą naudodami npm paketų tvarkyklė bėgant:
npm diegimas @nestjs/mongoose mangustas
2 veiksmas: prisijungimas prie MongoDB
Kai diegimas bus baigtas, eikite į savo app.module.ts failą. Tada importuokite MongooseModule iš @lizdas/mangustas:
importuoti { MongooseModule } iš „@nestjs/mongoose“;
Tada savo importavimo masyve skambinkite forRoot metodas įjungtas MongooseModule ir perduokite savo MongoDB URI kaip argumentą:
importas: [MongooseModule.forRoot (process.env. MONGODB_URI)],
The forRoot metodas bendrina duomenų bazės ryšį per visus jūsų programos modulius. Tam reikia pasirinktinio konfigūracijos objekto; daugiau apie tai galite sužinoti Mangustas parinkčių dokumentacija.
3 veiksmas: sukurkite „Mongoose“ schemą
Schema yra JSON objektas, apibrėžiantis jūsų duomenų struktūrą ir turinį. Turėsite jį sukurti, kad nustatytumėte, kaip Mongoose saugo jūsų duomenis MongoDB duomenų bazėje.
Programos šakniniame modulyje sukurkite „schemos“ aplanką. Šiame aplanke saugosite visus schemos failus.
Tavo viduje schemos aplanką, sukurkite schemos failą ir pavadinkite jį naudodami NestJS pavadinimų suteikimo tvarką (
Tada į savo schemos failą pridėkite šiuos importuotus elementus:
importuoti { Prop, Schema, SchemaFactory } iš "@nestjs/mongoose";
importuoti { dokumentas } iš "mangustas";
The Prop dekoratorius pažymi ypatybes, kurias anotuoja kaip nuosavybę jūsų MongoDB duomenų bazėje.
The Schema dekoratorius pažymi klasę, kurią anotuoja kaip schemą.
The SchemaFactory klasėje yra statiniai modelio kūrimo metodai.
Mangutas dokumentas yra vienas su vienu susiejimas su dokumentais, saugomais MongoDB. Jums reikės kaip tipo anotacijos.
Tada sukurti klasę, pakomentuokite jį naudodami Schema dekoratorius, kad pažymėtų ją kaip Mongoose schemą ir eksportuotų:
@Schema()
eksportuotiklasėDemo{}
Tada sukurkite ir eksportuokite sąjungos tipą su savo klase ir Dokumentas:
eksportuotitipo DemoDocument = Demo & Document;
Tada pridėkite norimas ypatybes prie klasės ir pakomentuokite jas Prop dekoratorius. Galite perduoti pasirenkamą konfigūracijos objektą Prop dekoratorius ir nustatykite turtą pagal poreikį:
@Schema()
eksportuotiklasėDemo{
@Prop({ būtinas: tiesa })
nuosavybė_1: eilutė;
}
The Mangutas dokumentacija išsamiau apima konfigūracijos objektą.
Galiausiai sukurkite ir eksportuokite Mongoose modelį naudodami SchemaFactory’s CreateForClass metodą ir perduokite savo klasę kaip argumentą:
eksportuotikonst DemoSchema = SchemaFactory.createForClass (Demo);
Užbaigta schema turėtų atrodyti taip:
importuoti { Prop, Schema, SchemaFactory } iš „@nestjs/mongoose“;
importuoti { dokumentas } iš „mangustas“;eksportuotitipo DemoDocument = Demo & Document;
@Schema()
eksportuotiklasėDemo{
@Prop({ būtinas: tiesa })
nuosavybė_1: eilutė;@Prop({ būtinas: tiesa })
property_2: skaičius;@Prop()
property_3: string;@Prop({ būtinas: tiesa })
property_4: loginis;
}
eksportuotikonst DemoSchema = SchemaFactory.createForClass (Demo);
4 veiksmas: schemos registravimas
Eikite į savo modulio aplanką ir pridėkite šiuos importuotus elementus:
importuoti { MongooseModule } iš „@nestjs/mongoose“;
importuoti { Demonstracija, Demoschema } iš '../schemas/demo.schema';
Tada sukurkite „importas“ masyvas viduje @modulis dekoratorius. Tada masyvo viduje skambinkite forFeature metodas įjungtas MongooseModule.
The forFeature metodas apima daugybę Mongoose modelių. Perduokite konfigūracijos objektą su a vardas ypatybė nustatyta pagal jūsų schemos klasės pavadinimą ir a schema nuosavybė nustatyta pagal jūsų sukurtą schemą:
MongooseModule.ForFeature([{ vardas: Demo.pavadinimas, schema: DemoSchema }]),
5 veiksmas: Mongoose modelio įpurškimas
Tada turėsite įvesti Mongoose modelį, kad įgalintumėte duomenų bazės užklausas, iškviesdami modelio Mongoose metodus.
Eikite į savo modulio paslaugų klasę ir pridėkite šiuos importuotus elementus:
importuoti { Modelis } iš „mangustas“;
importuoti { InjectModel } iš „@nestjs/mongoose“;
importuoti { Demonstracija, DemoDokumentas } iš '../schemas/demo.schema';
Naudoti Modelis sąsaja kaip jūsų modelio tipo apibrėžimas, suteikiantis jam prieigą prie Mongoose metodų.
The InjectModel dekoratorius įterpia Mongoose modelį į jūsų paslaugų klasės konstruktorių.
Tada sukurkite a konstruktorius jūsų paslaugų klasėje. Tai turėtų užtrukti a privatus kintamasis kaip argumentas, a Modelis su bendriniu tipu DemoDokumentas. Komentuokite savo privatų kintamąjį naudodami InjectModel dekoratorių ir kaip argumentą pateikite savo schemos klasės pavadinimą:
@Injekcinis()
eksportuotiklasėDemoService{
konstruktorius(
@InjectModel(Demo.name)
privatus demoModelis: modelis<DemoDokumentas>,
) {}
}
Galite pateikti užklausą savo MongoDB duomenų bazėje iškviesdami Mongoose metodus savo privačiame kintamajame (demoModelis).
MongoDB naudojimo pranašumai
Be stiprios internetinės bendruomenės ir paprasto naudojimo, MongoDB užtikrina aukštą duomenų prieinamumą ir stabilumą. Ji siūlo pagreitintą analizę, duomenų kaupimą ir dar daugiau, todėl tai yra ideali duomenų bazė jūsų projektams.