A MongoDB egy séma nélküli NoSQL-adatbázis rugalmas dokumentumstruktúrákkal, ellentétben az SQL-adatbázisokkal. A MongoDB adatbázisként való használata számos előnnyel jár, az egyszerű méretezéstől a modern adatbázis-szolgáltatásokig, például a tranzakciókig.
A MongoDB támogatja az objektum adatmodellező (ODM) könyvtárakat is, mint például a Mongoose. Az ODM-ek kezelik az adatkapcsolatokat, érvényesítik a sémákat, és konvertálják az objektumokat adatmodellekké. Megkönnyítik a MongoDB adatbázisokkal való interakciót.
Néhány lépésben megtudhatja, hogyan használhatja a MongoDB-t egy NestJS-alkalmazásban a dedikált NestJS mongoose csomaggal.
1. lépés: Függőségek telepítése
Mielőtt a Mongoose-t a NestJS-alkalmazásban használná, telepítenie kell azt a natív NestJS-csomagjával együtt.
Telepítse a mongoose-t és natív NestJS-csomagját a használatával az npm csomagkezelőt futással:
npm telepítés @nestjs/mongúz mangúz
2. lépés: Csatlakozás a MongoDB-hez
Amikor a telepítés befejeződött, navigáljon a saját oldalára app.module.ts fájlt. Ezután importálja MongooseModule tól től @fészek/mangúz:
import { MongooseModule } tól től '@nestjs/mongoose';
Ezután az importálási tömbben hívja meg a forRoot módszer bekapcsolva MongooseModule és adja át a MongoDB URI-ját argumentumként:
behozatal: [MongooseModule.forRoot (process.env. MONGODB_URI)],
Az forRoot metódus megosztja az adatbázis-kapcsolatot az alkalmazás összes modulján keresztül. Egy opcionális konfigurációs objektumot igényel; cikkben tudhat meg többet róla Mongoose-féle opciók dokumentációja.
3. lépés: Mongoose séma létrehozása
A séma egy JSON-objektum, amely meghatározza az adatok szerkezetét és tartalmát. Létre kell hoznia egyet annak meghatározásához, hogy a Mongoose hogyan tárolja adatait a MongoDB adatbázisban.
Az alkalmazás gyökérmoduljában hozzon létre egy „sémák” mappát. Ebben a mappában tárolhatja az összes sémafájlt.
A tiédben sémák mappát, hozzon létre egy sémafájlt, és nevezze el a NestJS elnevezési konvencióval (
Ezután adja hozzá a következő importálásokat a sémafájlhoz:
import { Prop, Schema, SchemaFactory } tól től "@nestjs/mongoose";
import { Dokumentum } tól től "indiai menyét";
Az Támaszt A dekorátor az általa jegyzett tulajdonságokat tulajdonságként jelöli meg a MongoDB adatbázisában.
Az Séma dekorátor az általa jegyzett osztályt sémaként jelöli meg.
Az SchemaFactory osztály tartalmazza a modellalkotáshoz használt statikus metódusokat.
A mongúz Dokumentum egy-egy leképezést jelent a MongoDB-ben tárolt dokumentumokhoz. Típusjegyzetként lesz szüksége rá.
Akkor, hozzon létre egy osztályt, jegyezze fel a Séma dekorátor, hogy Mongoose sémaként jelölje meg, és exportálja:
@Séma()
exportosztályDemó{}
Ezután hozzon létre és exportáljon egy szakszervezeti típust az osztályával és Dokumentum:
exporttípus DemoDocument = Demo & Document;
Ezután adja hozzá a kívánt tulajdonságokat az osztályhoz, és jegyezze fel őket a Támaszt lakberendező. Opcionális konfigurációs objektumot adhat át a Támaszt lakberendező és állítsa be az ingatlant igény szerint:
@Séma()
exportosztályDemó{
@Támaszt({ kötelező: igaz })
property_1: string;
}
Az Indiai menyét a dokumentáció részletesebben lefedi a konfigurációs objektumot.
Végül hozzon létre és exportáljon egy Mongoose modellt a következőn keresztül SchemaFactory's CreateForClass metódust, és adja át az osztályát argumentumként:
exportconst DemoSchema = SchemaFactory.createForClass (Demo);
Az elkészült sémának így kell kinéznie:
import { Prop, Schema, SchemaFactory } tól től '@nestjs/mongoose';
import { Dokumentum } tól től 'indiai menyét';exporttípus DemoDocument = Demo & Document;
@Séma()
exportosztályDemó{
@Támaszt({ kötelező: igaz })
property_1: string;@Támaszt({ kötelező: igaz })
property_2: szám;@Támaszt()
property_3: string;@Támaszt({ kötelező: igaz })
property_4: logikai érték;
}
exportconst DemoSchema = SchemaFactory.createForClass (Demo);
4. lépés: A séma regisztrálása
Keresse meg a modul mappáját, és adja hozzá a következő importálásokat:
import { MongooseModule } tól től '@nestjs/mongoose';
import { Demo, DemoSchema } tól től '../schemas/demo.schema';
Ezután hozzon létre egy „behozatal” tömb belsejében a @modul lakberendező. Ezután a tömbön belül hívja meg a forFeature módszer bekapcsolva MongooseModule.
Az forFeature módszer Mongoose modellek tömbjét veszi figyelembe. Adjon át egy konfigurációs objektumot a név tulajdonságot állítsa be a sémaosztály nevére, és a séma tulajdonság beállítva a létrehozott sémához:
MongooseModule.ForFeature([{ név: Demo.név, séma: DemoSchema }]),
5. lépés: A Mongoose modell befecskendezése
Ezután be kell illesztenie a Mongoose modellt, hogy lehetővé tegye az adatbázis lekérdezését a Mongoose metódusok meghívásával a modellen.
Keresse meg a modul szolgáltatási osztályát, és adja hozzá a következő importálásokat:
import { Modell } tól től 'indiai menyét';
import { InjectModel } tól től '@nestjs/mongoose';
import { Demo, Demo Document } tól től '../schemas/demo.schema';
Használja a Modell interfész a modell típusdefiníciójaként, hozzáférést biztosítva a Mongoose metódusokhoz.
Az InjectModel dekorátor beilleszti a Mongoose modellt a szolgáltatási osztályod konstruktorába.
Ezután hozzon létre a konstruktőr szolgáltatási osztályán belül. Kellene a magán változó mint argumentum, a Modell általános típusával DemoDokumentum. Jelölje meg privát változóját a InjectModel dekorátort, és adja át a sémaosztály nevét argumentumként:
@Injektálható()
exportosztályDemoService{
konstruktőr(
@InjectModel(Demo.name)
privát demoModell: Modell<DemoDokumentum>,
) {}
}
Lekérdezheti MongoDB adatbázisát a Mongoose metódusok meghívásával a privát változójában (demoModel).
A MongoDB használatának előnyei
Az erős online közösség és az egyszerű használat mellett a MongoDB magas szintű adatelérhetőséget és stabilitást biztosít. Gyorsított elemzést, adatösszesítést és egyebeket kínál, így ideális adatbázissá válik projektjei számára.