Jadi akhir-akhir ini saya menjelajahi NestJS dengan Mongo DB dan luwak. Karena ini adalah kerangka kerja baru, menemukan bantuan apa pun secara online merupakan tantangan yang cukup besar. Jadi di sini saya memberikan bantuan sebanyak yang saya bisa untuk membuat hidup Anda mudah Show
Jadi hari ini saya akan membahas pembuatan kunci komposit/senyawa dengan relasi satu ke banyak menggunakan luwak di NestJS. Saya juga akan menunjukkan kepada Anda perubahan yang perlu Anda lakukan di file skema dalam berbagai skenario kasus. Meskipun saya akan memberikan seluruh basis kode yang akan saya gunakan dalam contoh ini, tetapi ini akan membantu Anda memahaminya
Juga saya hanya akan menyebutkan kode file skema saya karena untuk membuat kunci komposit, hanya file skema yang perlu dimodifikasi, dan kemudian Anda menulis API menggunakan file repositori, layanan, dan pengontrol sesuai keinginan dan logika bisnis Anda Mari kita mulai, Pertama-tama buat aplikasi NestJS menggunakan perintah
Ini akan memberi Anda kode pelat ketel sederhana untuk digunakan. Sekarang buat modul, dalam contoh ini saya akan menggunakan modul Pengguna sederhana. Anda dapat menggunakan perintah
Sekarang mari kita buat skema. Di NestJS, kami menggunakan dekorator di seluruh aplikasi dan meskipun terlihat menakutkan, dekorator membuat hidup kami terlalu mudah. Ini kode untuk skema pengguna saya export type UserDocument = User & Document;@Schema({})export class User {@Prop()email: string;@Prop()age: number;// @Prop({type: Types.ObjectId, ref: () => Address, refPath: ‘db2’})// address: Address@Prop()hobby: Hobby[]} ekspor const UserSchema = SchemaFactory. createForClass(User); UserSchema. indeks({email. 1, hobi. 1}, {unik. BENAR}) Sekarang di sini saya telah mendefinisikan skema dengan objek tersemat dari objek skema lain i. e. Hobi. Di NestJS, seperti node, saat menggunakan luwak Anda perlu memberi tahu skema tentang kunci komposit dengan meneruskan nama entitas dalam fungsi indeks. Angka di depan nama hanya mewakili urutan penyortiran. Dengan menambahkan bendera unik di baris terakhir, kami menetapkan batasan unik untuk kunci ini. Artinya, jika kombinasi kunci ini berulang maka akan melalui kesalahan basis data
Di sisi dekorator Prop() tambahkan tipe prop sebagai Types. ObjectId dan tentukan skema referensi prop dengan meneruskan name sebagai string. Baris yang diperbarui akan terlihat seperti ini @Prop({type: Types.ObjectId, ref: ‘Hobby’}) _Sekarang sebelum penyisipan, basis data akan memeriksa kombinasi email dengan ObjectID yang ada dalam larik dan jika ada pasangan yang mungkin berulang, itu akan melalui kesalahan 2. Tanpa hubungan apapun Untuk membuat kunci komposit menggunakan entitas skema yang sama, Dalam hal ini mari kita buat kunci komposit menggunakan email dan usia. Yang perlu Anda ubah hanyalah informasi di dalam UserSchema. fungsi indeks. Garis yang diperbarui akan UserSchema.index({email: 1, age: 1}, {unique: true}) Sekarang sebelum penyisipan, database akan memeriksa kombinasi email dengan usia dan jika pasangan berulang, itu akan menjadi kesalahan Sekarang cukup jelas tapi saya pikir itu masih layak untuk disebutkan Kami dapat membuat kunci komposit dengan menggabungkan lebih dari 2 entitas, yang perlu Anda lakukan hanyalah memberi tahu skema tentang entitas yang ingin Anda sertakan dalam kunci komposit di Skema. Indeks({ },{unik. benar}) fungsi Sekian dari artikel ini. Semoga bermanfaat bagi salah satu developer yang datang ke sini dengan harapan akan menemukan jawabannya Berikut tautan ke basis kode yang berfungsi GitHub - haadbaig/NestJSNode progresif. js framework untuk membangun aplikasi sisi server yang efisien dan dapat diskalakan. TypeScript kerangka sarang…github. com Hubungi saya di Medium/Twitter/LinkedIn jika Anda ingin saya menulis artikel tentang topik NestJS lainnya Apakah MongoDB mendukung kunci komposit?MongoDB mendukung indeks majemuk , di mana struktur indeks tunggal menyimpan referensi ke beberapa bidang [1] dalam dokumen koleksi. Diagram berikut mengilustrasikan contoh indeks majemuk pada dua bidang. MongoDB memberlakukan batas 32 bidang untuk indeks gabungan apa pun.
Bagaimana Anda membuat kunci komposit?Kunci Utama Komposit dibuat dengan menggabungkan dua kolom atau lebih dalam tabel yang dapat digunakan untuk mengidentifikasi secara unik setiap baris dalam tabel .
Apa itu kunci komposit di MongoDB?Kunci gabungan adalah kombinasi properti dalam dokumen yang mengidentifikasinya secara unik . Menggunakan kunci utama komposit tidak lebih baik atau lebih buruk daripada menggunakan satu properti yang dihasilkan secara otomatis. Kami bahkan dapat menggabungkan pendekatan ini dengan indeks unik.
Bagaimana cara membuat kunci komposit di JPA?Untuk menentukan kunci primer komposit, kita harus mengikuti beberapa aturan. . Kelas kunci utama komposit harus bersifat publik Itu harus memiliki konstruktor no-arg Itu harus mendefinisikan metode equals() dan hashCode() Itu harus Serializable |