MongoDB, SQL veritabanlarından farklı olarak esnek belge yapılarına sahip şemasız bir NoSQL veritabanıdır. MongoDB'yi bir veritabanı olarak kullanmak, kolay ölçeklendirmeden işlemler gibi modern veritabanı özelliklerine kadar birçok fayda sağlar.
MongoDB ayrıca Mongoose gibi nesne veri modelleme (ODM) kitaplıklarını da destekler. ODM'ler veri ilişkilerini yönetir, şemaları doğrular ve nesneleri veri modellerine dönüştürür. MongoDB veritabanıyla etkileşimi kolaylaştırırlar.
Birkaç adımda, özel NestJS mongoose paketiyle bir NestJS uygulamasında MongoDB'yi nasıl kullanacağınızı öğreneceksiniz.
1. Adım: Bağımlılıkları Yükleme
NestJS uygulamanızda Mongoose'u kullanmadan önce, onu yerel NestJS paketiyle birlikte yüklemelisiniz.
kullanarak mongoose ve yerel NestJS paketini kurun npm paket yöneticisi koşarak:
npm kurulumu @nestjs/firavun faresi
Adım 2: MongoDB'ye Bağlanma
Kurulum bittiğinde, şuraya gidin: app.module.ts dosya. Sonra içe aktar MongooseModül itibaren @yuva/firavun faresi:
içe aktarmak { MongooseModule } itibaren '@nestjs/mongoose';
Ardından, içe aktarma dizinizde, Kök için yöntem MongooseModül ve MongoDB URI'nizi argüman olarak iletin:
ithalat: [MongooseModule.forRoot (process.env. MONGODB_URI)],
bu Kök için yöntemi, uygulamanızdaki tüm modüller aracılığıyla veritabanı bağlantısını paylaşır. İsteğe bağlı bir yapılandırma nesnesi alır; bu konuda daha fazla bilgi edinebilirsiniz firavun faresi seçenekler belgeleri.
3. Adım: Bir Mongoose Şeması Oluşturma
Şema, verilerinizin yapısını ve içeriğini tanımlayan bir JSON nesnesidir. Mongoose'un verilerinizi MongoDB veritabanında nasıl sakladığını tanımlamak için bir tane oluşturmanız gerekecek.
Uygulamanızın kök modülünde bir "şemalar" dosya. Bu klasör, tüm şema dosyalarınızı saklayacağınız yerdir.
senin içinde şemalar klasörü, bir şema dosyası oluşturun ve NestJS adlandırma kuralını kullanarak adlandırın (
Ardından, şema dosyanıza aşağıdaki içe aktarmaları ekleyin:
içe aktarmak { Prop, Schema, SchemaFactory } itibaren "@nestjs/firavun faresi";
içe aktarmak { Belge } itibaren "firavun faresi";
bu pervane dekoratör, açıklama eklediği özellikleri MongoDB veritabanınızda bir özellik olarak işaretler.
bu Şema dekoratör, açıklama eklediği sınıfı şema olarak işaretler.
bu şemaFabrika sınıf, model oluşturma için kullanılan statik yöntemleri içerir.
firavun faresi Belge MongoDB'de saklanan belgelere bire bir eşlemeyi temsil eder. Bir tür ek açıklaması olarak buna ihtiyacınız olacak.
O zamanlar, bir sınıf oluştur, ile not edin Şema bir Mongoose şeması olarak işaretlemek ve dışa aktarmak için dekoratör:
@Şema()
ihracatsınıfDemo{}
Ardından, sınıfınızla bir birlik türü oluşturun ve dışa aktarın ve Belge:
ihracattip DemoDocument = Demo ve Belge;
Ardından, istediğiniz özellikleri sınıfa ekleyin ve bunlara açıklama ekleyin. pervane dekoratör. İsteğe bağlı bir yapılandırma nesnesini pervane dekoratör ve özelliği gerektiği gibi ayarlayın:
@Şema()
ihracatsınıfDemo{
@Prop({ gereklidir: doğru })
özellik_1: dize;
}
bu firavun faresi belgeler, yapılandırma nesnesini daha ayrıntılı olarak kapsar.
Son olarak, bir Mongoose modeli oluşturun ve dışa aktarın. şemaFabrika's sınıf için yarat yöntemi ve sınıfınızı argüman olarak iletin:
ihracatconst DemoSchema = SchemaFactory.createForClass (Demo);
Tamamlanmış şemanız şöyle görünmelidir:
içe aktarmak { Prop, Schema, SchemaFactory } itibaren '@nestjs/mongoose';
içe aktarmak { Belge } itibaren 'firavun faresi';ihracattip DemoDocument = Demo ve Belge;
@Şema()
ihracatsınıfDemo{
@Prop({ gereklidir: doğru })
özellik_1: dize;@Prop({ gereklidir: doğru })
özellik_2: sayı;@Prop()
özellik_3: dize;@Prop({ gereklidir: doğru })
özellik_4: boole;
}
ihracatconst DemoSchema = SchemaFactory.createForClass (Demo);
Adım 4: Şemayı Kaydetme
Modülünüzün klasörüne gidin ve aşağıdaki içe aktarmaları ekleyin:
içe aktarmak { MongooseModule } itibaren '@nestjs/mongoose';
içe aktarmak { Demo, DemoŞema } itibaren '../schemas/demo.schema';
Ardından, bir "oluşturunithalat” içindeki dizi @modül dekoratör. Ardından, dizinin içinde, Özellik için yöntem MongooseModül.
bu Özellik için yöntem bir dizi Mongoose modelini alır. Bir yapılandırma nesnesini bir isim şema sınıfınızın adına ayarlanmış özellik ve bir şema oluşturduğunuz şemaya ayarlanan özellik:
MongooseModül.forFeature([{ isim: Demo.name, şema: DemoSchema }]),
Adım 5: Mongoose Modelini Enjekte Etme
Ardından, model üzerinde Mongoose yöntemlerini çağırarak veritabanınızın sorgulanmasını etkinleştirmek için Mongoose Modelini enjekte etmeniz gerekecek.
Modülünüzün hizmet sınıfına gidin ve aşağıdaki içe aktarmaları ekleyin:
içe aktarmak { Model } itibaren 'firavun faresi';
içe aktarmak { InjectModel } itibaren '@nestjs/mongoose';
içe aktarmak { Demo, DemoBelge } itibaren '../schemas/demo.schema';
Kullan modeli Modeliniz için bir tür tanımı olarak arabirim, ona Mongoose yöntemlerine erişim sağlar.
bu InjectModel dekoratör, Mongoose modelini hizmet sınıfınızın yapıcısına enjekte eder.
Ardından, bir yapıcı hizmet sınıfınızın içinde. Bir almalı özel argüman olarak değişken, bir modeli jenerik bir tür ile DemoBelge. Özel değişkeninize şu şekilde açıklama ekleyin: InjectModel dekoratör ve şema sınıfı adınızı argüman olarak iletin:
@Enjekte edilebilir()
ihracatsınıfDemoHizmet{
yapıcı(
@InjectModel(Demo.name)
özel demoModel: Model<DemoBelge>,
) {}
}
Özel değişkeninizde Mongoose yöntemlerini çağırarak MongoDB veritabanınızı sorgulayabilirsiniz (demoModel).
MongoDB Kullanmanın Avantajları
Güçlü çevrimiçi topluluğu ve kullanım kolaylığının yanı sıra MongoDB, yüksek veri kullanılabilirliği ve kararlılığı sağlar. Hızlandırılmış analitik, veri toplama ve daha fazlasını sunarak projeleriniz için ideal veritabanı haline getirir.