MongoDB adalah database NoSQL tanpa skema dengan struktur dokumen yang fleksibel, tidak seperti database SQL. Menggunakan MongoDB sebagai database membawa banyak manfaat, mulai dari penskalaan yang mudah hingga fitur database modern seperti transaksi.
MongoDB juga mendukung perpustakaan pemodelan data objek (ODM) seperti Mongoose. ODM mengelola hubungan data, memvalidasi skema, dan mengubah objek menjadi model data. Mereka membuatnya lebih mudah untuk berinteraksi dengan database MongoDB.
Dalam beberapa langkah, Anda akan mempelajari cara menggunakan MongoDB di aplikasi NestJS dengan paket luwak NestJS khusus.
Langkah 1: Menginstal Dependensi
Sebelum menggunakan Mongoose di aplikasi NestJS Anda, Anda harus menginstalnya bersama dengan paket NestJS aslinya.
Instal luwak dan paket NestJS aslinya menggunakan manajer paket npm dengan menjalankan:
instal npm @nestjs/luwak luwak
Langkah 2: Menghubungkan ke MongoDB
Saat penginstalan selesai, navigasikan ke app.module.ts mengajukan. Kemudian impor MongooseModul dari @sarang/luwak:
impor { MongooseModule } dari '@nestjs/luwak';
Selanjutnya, dalam larik impor Anda, panggil untuk Root metode aktif MongooseModul dan berikan URI MongoDB Anda sebagai argumen:
impor: [MongooseModule.forRoot (process.env. MONGODB_URI)],
Itu untuk Root metode berbagi koneksi database melalui semua modul dalam aplikasi Anda. Dibutuhkan objek konfigurasi opsional; Anda dapat mempelajarinya lebih lanjut di luwak dokumentasi opsi.
Langkah 3: Membuat Skema Mongoose
Skema adalah objek JSON yang mendefinisikan struktur dan konten data Anda. Anda harus membuatnya untuk menentukan bagaimana Mongoose menyimpan data Anda di database MongoDB.
Di modul root aplikasi Anda, buat "skema” folder. Folder ini adalah tempat Anda akan menyimpan semua file skema Anda.
Di dalam Anda skema folder, buat file skema dan beri nama menggunakan konvensi penamaan NestJS (
Selanjutnya, tambahkan impor berikut ke file skema Anda:
impor { Prop, Skema, Pabrik Skema } dari "@nestjs/luwak";
impor { Dokumen } dari "luwak";
Itu Menopang dekorator menandai properti yang dianotasi sebagai properti di database MongoDB Anda.
Itu Skema dekorator menandai kelas yang dianotasi sebagai skema.
Itu SkemaPabrik class berisi metode statis yang digunakan untuk pembuatan model.
si luwak Dokumen mewakili pemetaan satu-ke-satu ke dokumen yang disimpan di MongoDB. Anda akan membutuhkannya sebagai anotasi tipe.
Kemudian, membuat kelas, beri keterangan dengan Skema dekorator untuk menandainya sebagai skema Mongoose, dan mengekspornya:
@Skema()
eksporkelasDemo{}
Selanjutnya, buat dan ekspor tipe gabungan dengan kelas Anda dan Dokumen:
eksporTipe DemoDocument = Demo & Dokumen;
Kemudian tambahkan properti yang Anda inginkan ke kelas dan beri anotasi dengan Menopang penghias. Anda dapat meneruskan objek konfigurasi opsional ke Menopang dekorator dan atur properti sesuai kebutuhan:
@Skema()
eksporkelasDemo{
@Menopang({ yg dibutuhkan: BENAR })
properti_1: string;
}
Itu Luwak dokumentasi mencakup objek konfigurasi secara lebih rinci.
Terakhir, buat dan ekspor model Mongoose melalui SkemaPabrik's buatUntukKelas metode dan berikan kelas Anda sebagai argumen:
eksporkonstan DemoSchema = SchemaFactory.createForClass (Demo);
Skema Anda yang sudah selesai akan terlihat seperti ini:
impor { Prop, Skema, Pabrik Skema } dari '@nestjs/luwak';
impor { Dokumen } dari 'luwak';eksporTipe DemoDocument = Demo & Dokumen;
@Skema()
eksporkelasDemo{
@Menopang({ yg dibutuhkan: BENAR })
properti_1: string;@Menopang({ yg dibutuhkan: BENAR })
properti_2: nomor;@Menopang()
properti_3: string;@Menopang({ yg dibutuhkan: BENAR })
properti_4: boolean;
}
eksporkonstan DemoSchema = SchemaFactory.createForClass (Demo);
Langkah 4: Mendaftarkan Skema
Arahkan ke folder modul Anda dan tambahkan impor berikut:
impor { MongooseModule } dari '@nestjs/luwak';
impor { Demo, Skema Demo } dari '../schemas/demo.schema';
Selanjutnya, buat “impor” susunan di dalam @modul penghias. Kemudian, di dalam array, panggil untukFitur metode aktif MongooseModul.
Itu untukFitur metode mengambil dalam array model Mongoose. Lewati objek konfigurasi dengan a nama properti diatur ke nama kelas skema Anda, dan a skema properti diatur ke skema yang Anda buat:
MongooseModul.untukFitur([{ nama: Demo.name, skema: DemoSchema }]),
Langkah 5: Menyuntikkan Model Luwak
Selanjutnya, Anda harus menyuntikkan Model Mongoose untuk mengaktifkan kueri database Anda dengan memanggil metode Mongoose pada model.
Navigasikan ke kelas layanan modul Anda, dan tambahkan impor berikut:
impor { Model } dari 'luwak';
impor { Model Injeksi } dari '@nestjs/luwak';
impor { Demo, Dokumen Demo } dari '../schemas/demo.schema';
Menggunakan Model interface sebagai definisi tipe untuk model Anda, memberikannya akses ke metode Mongoose.
Itu InjectModel dekorator menyuntikkan model Mongoose ke konstruktor kelas layanan Anda.
Selanjutnya, buat konstruktor di dalam kelas layanan Anda. Ini harus mengambil pribadi variabel sebagai argumen, a Model dengan tipe generik DemoDokumen. Beri anotasi pada variabel pribadi Anda dengan InjectModel dekorator dan berikan nama kelas skema Anda sebagai argumen:
@suntik()
eksporkelasLayanan Demo{
konstruktor(
@InjectModel(Demo.nama)
demo pribadiModel: Model<DemoDokumen>,
) {}
}
Anda dapat menanyakan database MongoDB Anda dengan memanggil metode Mongoose pada variabel pribadi Anda (model demo).
Keuntungan Menggunakan MongoDB
Selain komunitas online yang kuat dan kemudahan penggunaan, MongoDB menyediakan ketersediaan dan stabilitas data yang tinggi. Ini menawarkan analitik yang dipercepat, agregasi data, dan banyak lagi, menjadikannya database yang ideal untuk proyek Anda.