Apa skema di mongodb
Mongoose adalah library Object Data Modeling (ODM) untuk MongoDB dan Node. js. Itu mengelola hubungan antara data, menyediakan validasi skema, dan digunakan untuk menerjemahkan antar objek dalam kode dan representasi objek tersebut di MongoDB Show MongoDB adalah database dokumen NoSQL tanpa skema. Ini berarti Anda dapat menyimpan dokumen JSON di dalamnya, dan struktur dokumen ini dapat bervariasi karena tidak diberlakukan seperti database SQL. Ini adalah salah satu keuntungan menggunakan NoSQL karena mempercepat pengembangan aplikasi dan mengurangi kerumitan penerapan Di bawah ini adalah contoh bagaimana data disimpan di Mongo vs. Basis Data SQL Dokumen NoSQL vs. Tabel Relasional dalam SQLTerminologiKoleksi'Koleksi' di Mongo setara dengan tabel di database relasional. Mereka dapat menyimpan banyak dokumen JSON Dokumen'Dokumen' setara dengan catatan atau baris data dalam SQL. Sementara baris SQL dapat mereferensikan data di tabel lain, dokumen Mongo biasanya menggabungkannya dalam dokumen Bidang'Bidang' atau atribut mirip dengan kolom dalam tabel SQL SkemaSementara Mongo tanpa skema, SQL mendefinisikan skema melalui definisi tabel. 'Skema' Mongoose adalah struktur data dokumen (atau bentuk dokumen) yang ditegakkan melalui lapisan aplikasi Model'Model' adalah konstruktor tingkat tinggi yang mengambil skema dan membuat turunan dokumen yang setara dengan catatan dalam database relasional MulaiInstalasi MonggoSebelum memulai, mari siapkan Mongo. Anda dapat memilih salah satu opsi berikut (kami menggunakan opsi #1 untuk artikel ini)
Mari telusuri beberapa dasar Mongoose dengan menerapkan model yang merepresentasikan data untuk buku alamat yang disederhanakan Saya menggunakan Kode Visual Studio, Node 8. 9, dan NPM5. 6. Jalankan IDE favorit Anda, buat proyek kosong, dan mari kita mulai. Kami akan menggunakan sintaks ES6 terbatas di Node, jadi kami tidak akan mengonfigurasi Babel Instal NPMMari kita pergi ke folder proyek dan menginisialisasi proyek kita
Mari instal Mongoose dan pustaka validasi dengan perintah berikut _Perintah install di atas akan menginstal versi terbaru dari library. Sintaks Mongoose dalam artikel ini khusus untuk Mongoose v5 dan seterusnya Koneksi Basis DataBuat file _1 di bawah root proyekSelanjutnya kita akan menambahkan class sederhana dengan method yang terhubung ke database String koneksi Anda akan bervariasi berdasarkan instalasi Anda
Panggilan _2 di atas mengembalikan objek Singleton. Ini berarti bahwa pertama kali Anda memanggil _2, itu membuat turunan dari kelas Mongoose dan mengembalikannya. Pada panggilan berikutnya, itu akan mengembalikan instance yang sama yang dibuat dan dikembalikan kepada Anda pertama kali karena cara kerja impor/ekspor modul di ES6Impor modul/membutuhkan alur kerjaDemikian pula, kami telah mengubah kelas Database kami menjadi singleton dengan mengembalikan instance kelas dalam pernyataan 4 karena kami hanya memerlukan satu koneksi ke databaseES6 sangat memudahkan kita untuk membuat pola singleton (instance tunggal) karena cara kerja pemuat modul dengan menyimpan respons dari file yang diimpor sebelumnya ke dalam cache Skema Mongoose vs. ModelModel Mongoose adalah pembungkus skema Mongoose. Skema Mongoose menentukan struktur dokumen, nilai default, validator, dll. , sedangkan model Mongoose menyediakan antarmuka ke database untuk membuat, membuat kueri, memperbarui, menghapus rekaman, dll. Membuat model Mongoose terutama terdiri dari tiga bagian 1. Referensi Mongoose
Referensi ini akan sama dengan yang dikembalikan saat kita terhubung ke database, yang berarti definisi skema dan model tidak perlu terhubung secara eksplisit ke database 2. Mendefinisikan SkemaSkema mendefinisikan properti dokumen melalui objek di mana nama kunci sesuai dengan nama properti dalam koleksi _Di sini kita mendefinisikan properti bernama email dengan tipe skema String yang memetakan ke validator internal yang akan dipicu saat model disimpan ke database. Itu akan gagal jika tipe data dari nilai bukan tipe string Jenis Skema berikut diizinkan
Mixed dan ObjectId didefinisikan di bawah 53. Mengekspor ModelKita perlu memanggil konstruktor model pada instance Mongoose dan meneruskannya dengan nama koleksi dan referensi ke definisi skema
Mari gabungkan kode di atas menjadi 6 untuk menentukan konten model email dasar
Definisi skema harus sederhana, tetapi kerumitannya biasanya didasarkan pada persyaratan aplikasi. Skema dapat digunakan kembali dan dapat berisi beberapa skema anak juga. Pada contoh di atas, nilai properti email adalah tipe nilai sederhana. Namun, itu juga bisa menjadi tipe objek dengan properti tambahan di dalamnya Kita dapat membuat instance dari model yang kita definisikan di atas dan mengisinya menggunakan sintaks berikut
Mari tingkatkan skema Email untuk membuat properti email menjadi bidang wajib yang unik dan mengonversi nilainya menjadi huruf kecil sebelum menyimpannya. Kami juga dapat menambahkan fungsi validasi yang akan memastikan bahwa nilainya adalah alamat email yang valid. Kami akan merujuk dan menggunakan pustaka validator yang diinstal sebelumnya
Operasi DasarMongoose memiliki API yang fleksibel dan menyediakan banyak cara untuk menyelesaikan tugas. Kami tidak akan fokus pada variasi karena itu di luar cakupan artikel ini, tetapi ingat bahwa sebagian besar operasi dapat dilakukan dengan lebih dari satu cara baik secara sintaksis atau melalui arsitektur aplikasi Buat RekamMari buat contoh model email dan simpan ke database
Hasilnya adalah dokumen yang dikembalikan setelah penyimpanan berhasil _0Bidang berikut dikembalikan (bidang internal diawali dengan garis bawah)
Jika Anda mencoba mengulangi operasi penyimpanan di atas, Anda akan mendapatkan kesalahan karena kami telah menetapkan bahwa bidang email harus unik Ambil RekamMari kita coba mengambil record yang kita simpan ke database tadi. Kelas model memaparkan beberapa metode statis dan instan untuk melakukan operasi pada database. Kami sekarang akan mencoba menemukan catatan yang kami buat sebelumnya menggunakan metode temukan dan meneruskan email sebagai istilah pencarian _1Dokumen yang dikembalikan akan serupa dengan yang ditampilkan saat kami membuat rekaman _0Perbarui CatatanMari ubah catatan di atas dengan mengubah alamat email dan menambahkan bidang lain ke dalamnya, semuanya dalam satu operasi. Untuk alasan kinerja, Mongoose tidak akan mengembalikan dokumen yang telah diperbarui, jadi kami harus memberikan parameter tambahan untuk memintanya _3Dokumen yang dikembalikan akan berisi email yang diperbarui _4Hapus CatatanKami akan menggunakan panggilan _1 untuk menghapus catatan. Ini mengembalikan dokumen asli yang telah dihapus _5PembantuKami telah melihat beberapa fungsi dasar di atas yang dikenal sebagai operasi CRUD (Buat, Baca, Perbarui, Hapus), tetapi Mongoose juga menyediakan kemampuan untuk mengonfigurasi beberapa jenis metode dan properti pembantu. Ini dapat digunakan untuk lebih menyederhanakan bekerja dengan data Mari buat skema pengguna di 2 dengan bidang 3 dan 4 _6Properti VirtualProperti virtual tidak dipertahankan ke database. Kami dapat menambahkannya ke skema kami sebagai pembantu untuk mendapatkan dan menetapkan nilai Mari buat properti virtual bernama 5 yang dapat digunakan untuk menetapkan nilai pada 3 dan 4 dan mengambilnya sebagai nilai gabungan saat dibaca _7Panggilan balik untuk mendapatkan dan mengatur harus menggunakan kata kunci fungsi karena kita perlu mengakses model melalui kata kunci 8. Menggunakan fungsi panah gemuk akan mengubah apa yang dimaksud ________8______8Sekarang, kita dapat menyetel 3 dan 4 dengan menetapkan nilai ke 5 _8Kode di atas akan menampilkan berikut ini _9Metode InstanceKami dapat membuat metode pembantu khusus pada skema dan mengaksesnya melalui contoh model. Metode ini akan memiliki akses ke objek model dan dapat digunakan dengan cukup kreatif. Misalnya, kita dapat membuat metode untuk menemukan semua orang yang memiliki nama depan yang sama dengan instance saat ini Dalam contoh ini, mari buat fungsi untuk mengembalikan inisial untuk pengguna saat ini. Mari tambahkan metode pembantu khusus yang disebut 3 ke skema 0Metode ini akan dapat diakses melalui instance model 1Metode StatisMirip dengan metode instance, kita dapat membuat metode statis pada skema. Mari buat metode untuk mengambil semua pengguna di database 2Memanggil _4 pada kelas Model akan mengembalikan semua pengguna dalam database _3Menambahkan metode instance dan statis adalah pendekatan yang bagus untuk mengimplementasikan antarmuka ke interaksi basis data pada koleksi dan catatan MiddlewareMiddleware adalah fungsi yang berjalan pada tahapan tertentu dari sebuah pipeline. Mongoose mendukung middleware untuk operasi berikut
Misalnya, model memiliki fungsi _5 dan 6 yang menggunakan dua parameter
Mari kita coba sebuah contoh dengan menambahkan dua bidang bernama 7 dan 8 ke skema kita _4Saat _9 dipanggil, ada peristiwa 0 dan 1 yang dipicu. Untuk parameter kedua, Anda bisa melewatkan fungsi yang dipanggil saat peristiwa dipicu. Fungsi-fungsi ini mengambil parameter ke fungsi berikutnya dalam rantai middlewareMari tambahkan kait pra-simpan dan tetapkan nilai untuk 7 dan 8 5Mari buat dan simpan model kita 6Anda akan melihat nilai untuk _7 dan 8 saat rekaman yang dibuat dicetak _7PluginMisalkan kita ingin melacak kapan record dibuat dan terakhir diperbarui pada setiap koleksi di database kita. Alih-alih mengulangi proses di atas, kita dapat membuat plugin dan menerapkannya ke setiap skema Mari buat file _6 dan replikasi fungsi di atas sebagai modul yang dapat digunakan kembali 8Untuk menggunakan plugin ini, kami cukup meneruskannya ke skema yang harus diberi fungsi ini _9Gedung KueriMongoose memiliki API yang sangat kaya yang menangani banyak operasi kompleks yang didukung oleh MongoDB. Pertimbangkan kueri tempat kami dapat membuat komponen kueri secara bertahap Dalam contoh ini, kita akan
0PenutupanKami baru saja menggores permukaan menjelajahi beberapa kemampuan Mongoose. Ini adalah perpustakaan kaya yang penuh dengan fitur berguna dan canggih yang membuatnya menyenangkan untuk bekerja dengan model data di lapisan aplikasi Meskipun Anda dapat berinteraksi dengan Mongo secara langsung menggunakan Mongo Driver, Mongoose akan menyederhanakan interaksi tersebut dengan memungkinkan Anda membuat model hubungan antar data dan memvalidasinya dengan mudah Fakta Menyenangkan. Mongoose dibuat oleh Valeri Karpov yang merupakan insinyur yang sangat berbakat. Dia menciptakan istilah The MEAN Stack Jika artikel ini bermanfaat, ???Anda mungkin juga menyukai bengkel saya di youtube. Cara Membangun REST API dengan Node. Cepat. MongoIKLAN IKLAN IKLAN IKLAN IKLAN IKLAN IKLAN IKLAN IKLAN IKLAN IKLAN IKLAN IKLAN Jika artikel ini bermanfaat, tweetlah Belajar kode secara gratis. Kurikulum open source freeCodeCamp telah membantu lebih dari 40.000 orang mendapatkan pekerjaan sebagai pengembang. Memulai Apakah MongoDB memiliki skema?Sebagai database NoSQL, MongoDB dianggap tanpa skema karena tidak memerlukan skema yang kaku dan telah ditentukan sebelumnya seperti database relasional. Sistem manajemen basis data (DBMS) memberlakukan skema parsial saat data ditulis, secara eksplisit mencantumkan koleksi dan indeks.
Mengapa menggunakan skema di MongoDB?Validasi skema memungkinkan Anda membuat aturan validasi untuk bidang Anda, seperti tipe data yang diizinkan dan rentang nilai . MongoDB menggunakan model skema yang fleksibel, yang berarti bahwa dokumen dalam kumpulan tidak perlu memiliki bidang atau tipe data yang sama secara default.
Bagaimana Anda mendefinisikan skema?Dalam pemrograman komputer, skema (diucapkan SKEE-mah) adalah organisasi atau struktur untuk database , sedangkan dalam kecerdasan buatan (AI . Untuk yang pertama, aktivitas pemodelan data mengarah ke skema.
Bagaimana cara membuat skema di MongoDB?Seperti yang telah kita ketahui, MongoDB adalah tanpa skema, pada saat membuat objek apa pun, kita tidak dapat membuat skema apa pun di MongoDB . Kita dapat menerapkan skema untuk pengumpulan di MongoDB dengan menggunakan kluster atlas MongoDB, untuk menerapkan skema dokumen kita perlu menghubungkan database dan koleksi terlebih dahulu. |