Koleksi di MongoDB sama dengan tabel di MySQL Show Membuat KoleksiUntuk membuat koleksi di MongoDB, gunakan metode ContohBuat koleksi yang disebut "pelanggan" var MongoClient = membutuhkan('mongodb'). Klien Mongo; Klien Mongo. hubungkan(url, fungsi(err, db) { Simpan kode di atas dalam file bernama "demo_mongodb_createcollection. js" dan jalankan file Jalankan "demo_mongodb_createcollection. js" C. \Users\Nama Anda>simpul demo_mongodb_createcollection. js Yang akan memberi Anda hasil ini Penting. Di MongoDB, koleksi tidak dibuat hingga mendapatkan konten MongoDB menunggu hingga Anda memasukkan dokumen sebelum benar-benar membuat koleksi Artikel ini secara singkat memperkenalkan database, dan cara menggunakannya dengan aplikasi Node/Express. Ini kemudian menunjukkan bagaimana kita dapat menggunakan Mongoose untuk menyediakan akses database untuk situs web LocalLibrary. Ini menjelaskan bagaimana skema dan model objek dideklarasikan, tipe bidang utama, dan validasi dasar. Ini juga secara singkat menunjukkan beberapa cara utama di mana Anda dapat mengakses data model Prasyarat. Tutorial Ekspres Bagian 2. Membuat kerangka situs webTujuan. Untuk dapat mendesain dan membuat model sendiri menggunakan MongooseStaf perpustakaan akan menggunakan situs web Perpustakaan Daerah untuk menyimpan informasi tentang buku dan peminjam, sementara anggota perpustakaan akan menggunakannya untuk menelusuri dan mencari buku, mencari tahu apakah ada salinan yang tersedia, dan kemudian memesan atau meminjamnya. Untuk menyimpan dan mengambil informasi secara efisien, kami akan menyimpannya dalam database Aplikasi ekspres dapat menggunakan banyak database berbeda, dan ada beberapa pendekatan yang dapat Anda gunakan untuk melakukan operasi Buat, Baca, Perbarui, dan Hapus (CRUD). Tutorial ini memberikan ikhtisar singkat tentang beberapa opsi yang tersedia dan kemudian menunjukkan secara detail mekanisme tertentu yang dipilih Aplikasi Express dapat menggunakan database apa pun yang didukung oleh Node (Express sendiri tidak menentukan perilaku/persyaratan tambahan khusus untuk manajemen database). Ada banyak opsi populer, termasuk PostgreSQL, MySQL, Redis, SQLite, dan MongoDB Saat memilih database, Anda harus mempertimbangkan hal-hal seperti waktu-ke-produktivitas/kurva pembelajaran, kinerja, kemudahan replikasi/pencadangan, biaya, dukungan komunitas, dll. Meskipun tidak ada satu pun database "terbaik", hampir semua solusi populer seharusnya lebih dari cukup untuk situs berukuran kecil hingga menengah seperti Perpustakaan Lokal kami Untuk informasi selengkapnya tentang opsi, lihat Integrasi basis data (Express docs) Ada dua pendekatan umum untuk berinteraksi dengan database
Performa terbaik dapat diperoleh dengan menggunakan SQL, atau bahasa kueri apa pun yang didukung oleh database. ODM seringkali lebih lambat karena mereka menggunakan kode terjemahan untuk memetakan antara objek dan format basis data, yang mungkin tidak menggunakan kueri basis data yang paling efisien (ini terutama berlaku jika ODM mendukung backend basis data yang berbeda, dan harus membuat kompromi yang lebih besar dalam hal basis data apa Manfaat menggunakan ORM adalah pemrogram dapat terus berpikir dalam kerangka objek JavaScript daripada semantik basis data — ini terutama berlaku jika Anda perlu bekerja dengan basis data yang berbeda (baik di situs web yang sama atau berbeda). Mereka juga menyediakan tempat yang jelas untuk melakukan validasi data Catatan. Menggunakan ODM/ORM sering menghasilkan biaya yang lebih rendah untuk pengembangan dan pemeliharaan. Kecuali jika Anda sangat terbiasa dengan bahasa kueri asli atau kinerja adalah yang terpenting, Anda harus mempertimbangkan untuk menggunakan ODM Ada banyak solusi ODM/ORM yang tersedia di situs pengelola paket npm (lihat tag odm dan orm untuk subset. ) Beberapa solusi yang populer pada saat penulisan adalah
Sebagai aturan umum, Anda harus mempertimbangkan fitur yang disediakan dan "aktivitas komunitas" (pengunduhan, kontribusi, laporan bug, kualitas dokumentasi, dll. ) saat memilih solusi. Pada saat penulisan, Mongoose sejauh ini merupakan ODM paling populer, dan merupakan pilihan yang masuk akal jika Anda menggunakan MongoDB untuk database Anda Untuk contoh Perpustakaan Lokal (dan sisa topik ini) kita akan menggunakan ODM Mongoose untuk mengakses data perpustakaan kita. Mongoose bertindak sebagai ujung depan MongoDB, database NoSQL open source yang menggunakan model data berorientasi dokumen. "Kumpulan" "dokumen" dalam database MongoDB analog dengan "tabel" "baris" dalam database relasional Kombinasi ODM dan basis data ini sangat populer di komunitas Node, sebagian karena penyimpanan dokumen dan sistem kueri sangat mirip dengan JSON, dan karenanya akrab bagi pengembang JavaScript Catatan. Anda tidak perlu mengetahui MongoDB untuk menggunakan Mongoose, meskipun bagian dari dokumentasi Mongoose lebih mudah digunakan dan dipahami jika Anda sudah terbiasa dengan MongoDB Bagian selanjutnya dari tutorial ini menunjukkan cara mendefinisikan dan mengakses skema dan model Mongoose untuk contoh situs web LocalLibrary Sebelum Anda masuk dan mulai membuat kode model, ada baiknya meluangkan beberapa menit untuk memikirkan tentang data apa yang perlu kita simpan dan hubungan antara objek yang berbeda. Kami tahu bahwa kami perlu menyimpan informasi tentang buku (judul, ringkasan, penulis, genre, ISBN) dan bahwa kami mungkin memiliki banyak salinan yang tersedia (dengan id unik global, status ketersediaan, dll. ). Kami mungkin perlu menyimpan lebih banyak informasi tentang penulis daripada hanya nama mereka, dan mungkin ada beberapa penulis dengan nama yang sama atau serupa. Kami ingin dapat mengurutkan informasi berdasarkan judul buku, penulis, genre, dan kategori Saat mendesain model Anda, masuk akal untuk memiliki model terpisah untuk setiap "objek" (sekelompok informasi terkait). Dalam hal ini beberapa kandidat yang jelas untuk model ini adalah buku, contoh buku, dan penulis Anda mungkin juga ingin menggunakan model untuk mewakili opsi daftar pilihan (mis. g. seperti daftar drop-down pilihan), alih-alih melakukan hard-coding pilihan ke dalam situs web itu sendiri — ini disarankan jika semua opsi tidak diketahui sebelumnya atau mungkin berubah. Contoh yang baik adalah genre (mis. g. fantasi, fiksi ilmiah, dll. ) Setelah kami memutuskan model dan bidang kami, kami perlu memikirkan hubungan di antara mereka Dengan pemikiran tersebut, diagram asosiasi UML di bawah menunjukkan model yang akan kita definisikan dalam kasus ini (sebagai kotak). Seperti dibahas di atas, kami telah membuat model untuk buku (detail umum buku), instance buku (status salinan fisik tertentu dari buku yang tersedia di sistem), dan penulis. Kami juga telah memutuskan untuk memiliki model untuk genre tersebut sehingga nilai dapat dibuat secara dinamis. Kami telah memutuskan untuk tidak memiliki model untuk 6 — kami akan mengkodekan nilai yang dapat diterima karena kami tidak mengharapkan ini berubah. Di dalam masing-masing kotak, Anda dapat melihat nama model, nama bidang dan tipe, serta metode dan tipe pengembaliannyaDiagram juga menunjukkan hubungan antar model, termasuk multiplisitasnya. Perkalian adalah angka pada diagram yang menunjukkan angka (maksimum dan minimum) dari masing-masing model yang mungkin ada dalam hubungan tersebut. Misalnya, garis penghubung antar kotak menunjukkan bahwa 7 dan 8 berhubungan. Angka yang dekat dengan model 7 menunjukkan bahwa 8 harus memiliki nol atau lebih 7 (sebanyak yang Anda suka), sedangkan angka di ujung lain baris di sebelah 8 menunjukkan bahwa sebuah buku dapat memiliki nol atau lebih terkait 8Catatan. Seperti yang dibahas di bawah ini, seringkali lebih baik memiliki bidang yang menentukan hubungan antara dokumen/model hanya dalam satu model (Anda masih dapat menemukan hubungan terbalik dengan mencari 4 terkait di model lain). Di bawah ini kami telah memilih untuk mendefinisikan hubungan antara 7/ 8 dan 7/ 8 dalam skema Buku, dan hubungan antara 7/ 0 dalam Skema 0. Pilihan ini agak sewenang-wenang - kita bisa saja memiliki bidang dalam skema lainCatatan. Bagian selanjutnya memberikan primer dasar yang menjelaskan bagaimana model didefinisikan dan digunakan. Saat Anda membacanya, pertimbangkan bagaimana kita akan membuat masing-masing model dalam diagram di atas Bagian ini memberikan ikhtisar tentang cara menyambungkan Mongoose ke database MongoDB, cara menentukan skema dan model, dan cara membuat kueri dasar Catatan. Primer ini sangat dipengaruhi oleh mulai cepat Mongoose di npm dan dokumentasi resmi Mongoose diinstal di proyek Anda (package. json) seperti ketergantungan lainnya — menggunakan npm. Untuk menginstalnya, gunakan perintah berikut di dalam folder proyek Anda
Menginstal Mongoose menambahkan semua dependensinya, termasuk driver database MongoDB, tetapi tidak menginstal MongoDB sendiri. Jika Anda ingin menginstal server MongoDB maka Anda dapat mendownload installer dari sini untuk berbagai sistem operasi dan menginstalnya secara lokal. Anda juga dapat menggunakan instans MongoDB berbasis cloud Catatan. Untuk tutorial ini, kita akan menggunakan database berbasis cloud MongoDB Atlas sebagai tingkat layanan gratis untuk menyediakan database. Ini cocok untuk pengembangan dan masuk akal untuk tutorial karena membuat sistem operasi "instalasi" independen (database-as-a-service juga merupakan salah satu pendekatan yang mungkin Anda gunakan untuk database produksi Anda) Mongoose membutuhkan koneksi ke database MongoDB. Anda dapat 2 dan terhubung ke database yang dihosting secara lokal dengan 3 seperti yang ditunjukkan di bawah ini (untuk tutorial kami akan menghubungkan ke database yang dihosting internet)
Anda bisa mendapatkan objek _4 default dengan 5. Jika Anda perlu membuat koneksi tambahan, Anda dapat menggunakan 6. Ini mengambil bentuk yang sama dari database URI (dengan host, database, port, opsi, dll. ) sebagai _7 dan mengembalikan objek 4). Perhatikan bahwa _9 segera kembali; Model ditentukan menggunakan antarmuka 2. Skema memungkinkan Anda untuk menentukan bidang yang disimpan di setiap dokumen bersama dengan persyaratan validasi dan nilai defaultnya. Selain itu, Anda dapat menentukan metode helper statis dan instance untuk mempermudah bekerja dengan tipe data Anda, dan juga properti virtual yang dapat Anda gunakan seperti bidang lainnya, tetapi sebenarnya tidak disimpan dalam database (kita akan membahas Skema kemudian "dikompilasi" menjadi model menggunakan metode 3. Setelah Anda memiliki model, Anda dapat menggunakannya untuk menemukan, membuat, memperbarui, dan menghapus objek dari jenis yang diberikanCatatan. Setiap model memetakan ke kumpulan dokumen di database MongoDB. Dokumen akan berisi bidang/tipe skema yang ditentukan dalam model 2Mendefinisikan skemaFragmen kode di bawah ini menunjukkan bagaimana Anda dapat mendefinisikan skema sederhana. Pertama Anda 2 luwak, kemudian gunakan konstruktor Skema untuk membuat instance skema baru, tentukan berbagai bidang di dalamnya dalam parameter objek konstruktor
Dalam kasus di atas kita hanya memiliki dua field, sebuah string dan sebuah tanggal. Di bagian selanjutnya, kami akan menunjukkan beberapa jenis bidang lainnya, validasi, dan metode lainnya Membuat modelModel dibuat dari skema menggunakan metode 3 _Argumen pertama adalah nama tunggal dari koleksi yang akan dibuat untuk model Anda (Mongoose akan membuat koleksi database untuk model SomeModel di atas), dan argumen kedua adalah skema yang ingin Anda gunakan dalam membuat model Catatan. Setelah Anda menentukan kelas model, Anda dapat menggunakannya untuk membuat, memperbarui, atau menghapus rekaman, dan menjalankan kueri untuk mendapatkan semua rekaman atau subkumpulan rekaman tertentu. Kami akan menunjukkan cara melakukannya di bagian ini, dan saat kami membuat tampilan kami Jenis skema (bidang)Skema dapat memiliki jumlah bidang yang berubah-ubah — masing-masing mewakili bidang dalam dokumen yang disimpan di MongoDB. Skema contoh yang menunjukkan banyak jenis bidang umum dan cara mendeklarasikannya ditunjukkan di bawah ini
Sebagian besar SchemaTypes (deskriptor setelah "type. " atau setelah nama bidang) cukup jelas. Pengecualian adalah
Kode juga menunjukkan kedua cara mendeklarasikan bidang
Untuk informasi lebih lanjut tentang opsi, lihat SchemaTypes (Mongoose docs) ValidasiMongoose menyediakan validator bawaan dan kustom, serta validator sinkron dan asinkron. Ini memungkinkan Anda menentukan rentang nilai yang dapat diterima dan pesan kesalahan untuk kegagalan validasi dalam semua kasus Validator bawaan termasuk
Contoh di bawah ini (sedikit dimodifikasi dari dokumen Mongoose) menunjukkan bagaimana Anda dapat menentukan beberapa jenis validator dan pesan kesalahan
Untuk informasi lengkap tentang validasi lapangan, lihat Validasi (dokumen Mongoose) Properti mayaProperti virtual adalah properti dokumen yang bisa Anda dapatkan dan atur tetapi tidak dipertahankan ke MongoDB. Getter berguna untuk memformat atau menggabungkan bidang, sedangkan setter berguna untuk mendekomposisi satu nilai menjadi beberapa nilai untuk penyimpanan. Contoh dalam dokumentasi membuat (dan mendekonstruksi) properti virtual nama lengkap dari bidang nama depan dan belakang, yang lebih mudah dan bersih daripada membuat nama lengkap setiap kali digunakan dalam templat Catatan. Kami akan menggunakan properti virtual di pustaka untuk menentukan URL unik untuk setiap rekaman model menggunakan jalur dan nilai 4 rekamanUntuk informasi lebih lanjut, lihat (dokumentasi Mongoose) Metode dan bantuan kueriSkema juga dapat memiliki , , dan. Metode instance dan statis serupa, tetapi dengan perbedaan yang jelas bahwa metode instance dikaitkan dengan catatan tertentu dan memiliki akses ke objek saat ini. Pembantu kueri memungkinkan Anda memperluas API pembuat kueri yang dapat dirangkai dari luwak (misalnya, memungkinkan Anda menambahkan kueri "berdasarkan Nama" selain metode 0, 1, dan 2)Setelah membuat skema, Anda dapat menggunakannya untuk membuat model. Model mewakili kumpulan dokumen dalam database yang dapat Anda cari, sedangkan instance model mewakili dokumen individu yang dapat Anda simpan dan ambil Kami memberikan gambaran singkat di bawah ini. Untuk informasi lebih lanjut lihat. Model (dokumen Mongoose) Membuat dan memodifikasi dokumenUntuk membuat rekaman, Anda dapat menentukan instance model dan kemudian memanggil 3. Contoh di bawah menganggap SomeModel adalah model (dengan satu bidang "nama") yang telah kita buat dari skema kita
Pembuatan catatan (bersama dengan pembaruan, penghapusan, dan kueri) adalah operasi asinkron — Anda memberikan panggilan balik yang dipanggil saat operasi selesai. API menggunakan konvensi argumen error-first, jadi argumen pertama untuk callback akan selalu berupa nilai error (atau null). Jika API mengembalikan beberapa hasil, ini akan diberikan sebagai argumen kedua Anda juga dapat menggunakan _4 untuk menentukan instance model pada saat yang sama saat Anda menyimpannya. Callback akan mengembalikan error untuk argumen pertama dan instance model yang baru dibuat untuk argumen kedua
Setiap model memiliki koneksi terkait (ini akan menjadi koneksi default saat Anda menggunakan 3). Anda membuat koneksi baru dan memanggil 6 di atasnya untuk membuat dokumen di database yang berbedaAnda dapat mengakses bidang dalam catatan baru ini menggunakan sintaks titik, dan mengubah nilainya. Anda harus memanggil 3 atau 8 untuk menyimpan nilai yang diubah kembali ke database
Mencari rekamanAnda dapat mencari catatan menggunakan metode kueri, menentukan kondisi kueri sebagai dokumen JSON. Fragmen kode di bawah ini menunjukkan bagaimana Anda dapat menemukan semua atlet dalam database yang bermain tenis, hanya menampilkan bidang untuk nama dan usia atlet. Di sini kami hanya menentukan satu bidang yang cocok (olahraga), tetapi Anda dapat menambahkan lebih banyak kriteria, menentukan kriteria ekspresi reguler, atau menghapus semua ketentuan untuk mengembalikan semua atlet
Jika Anda menentukan panggilan balik, seperti yang ditunjukkan di atas, kueri akan segera dijalankan. Panggilan balik akan dipanggil saat pencarian selesai Catatan. Semua callback di Mongoose menggunakan pola 9. Jika terjadi kesalahan saat menjalankan kueri, parameter 0 akan berisi dokumen kesalahan dan 1 akan menjadi nol. Jika kueri berhasil, parameter _0 akan menjadi nol, dan 1 akan diisi dengan hasil kueriCatatan. Penting untuk diingat bahwa tidak menemukan hasil apa pun bukanlah kesalahan untuk pencarian — tetapi ini mungkin merupakan kasus gagal dalam konteks aplikasi Anda. Jika aplikasi Anda mengharapkan pencarian untuk menemukan nilai, Anda dapat memeriksa hasilnya di callback ( 4) atau daisy chain metode pada kueriJika Anda tidak menentukan callback maka API akan mengembalikan variabel tipe. Anda dapat menggunakan objek kueri ini untuk membangun kueri Anda dan kemudian menjalankannya (dengan panggilan balik) nanti menggunakan metode 5 _0Di atas kami telah mendefinisikan kondisi kueri dalam metode 0. Kami juga dapat melakukan ini menggunakan fungsi _7, dan kami dapat menggabungkan semua bagian kueri kami menggunakan operator titik (. ) daripada menambahkannya secara terpisah. Fragmen kode di bawah ini sama dengan kueri kami di atas, dengan syarat tambahan untuk usia _1Metode ini mendapatkan semua data yang cocok, tetapi seringkali Anda hanya ingin mendapatkan satu kecocokan. Metode berikut melakukan kueri untuk satu rekaman
Catatan. Ada juga cara yang bisa kamu gunakan untuk mendapatkan jumlah item yang sesuai dengan kondisi. Ini berguna jika Anda ingin melakukan penghitungan tanpa benar-benar mengambil rekamannya Ada banyak lagi yang dapat Anda lakukan dengan kueri. Untuk informasi lebih lanjut lihat. Kueri (dokumen Mongoose) Bekerja dengan dokumen terkait — populasiAnda dapat membuat referensi dari satu dokumen/contoh model ke yang lain menggunakan bidang skema 7, atau dari satu dokumen ke banyak menggunakan larik 9. Bidang menyimpan id dari model terkait. Jika Anda memerlukan konten aktual dari dokumen terkait, Anda dapat menggunakan metode dalam kueri untuk mengganti id dengan data aktualMisalnya, skema berikut mendefinisikan penulis dan cerita. Setiap penulis dapat memiliki banyak cerita, yang kami wakili sebagai larik 7. Setiap cerita dapat memiliki satu penulis. Properti _02 memberi tahu skema model mana yang dapat ditetapkan ke bidang ini _2Kami dapat menyimpan referensi kami ke dokumen terkait dengan menetapkan nilai 4. Di bawah ini kami membuat seorang penulis, lalu sebuah cerita, dan menetapkan id penulis ke bidang penulis cerita kami _3Dokumen cerita kita sekarang memiliki penulis yang direferensikan oleh ID dokumen penulis. Untuk mendapatkan informasi penulis dalam hasil cerita kami menggunakan 9, seperti yang ditunjukkan di bawah ini _4Catatan. Pembaca yang cerdik akan mencatat bahwa kami menambahkan penulis ke cerita kami, tetapi kami tidak melakukan apa pun untuk menambahkan cerita kami ke susunan 05 penulis kami. Lalu bagaimana kita bisa mendapatkan semua cerita dari penulis tertentu? Cara yang lebih baik adalah mendapatkan _4 penulis kita, lalu gunakan 0 untuk mencari ini di bidang penulis di semua cerita _5Ini hampir semua yang perlu Anda ketahui tentang bekerja dengan item terkait untuk tutorial ini. Untuk informasi lebih rinci, lihat Populasi (Mongoose docs) Meskipun Anda dapat membuat skema dan model menggunakan struktur file apa pun yang Anda suka, kami sangat menyarankan untuk menentukan setiap skema model dalam modulnya sendiri (file), lalu mengekspor metode untuk membuat model. Ini ditunjukkan di bawah ini _6Anda kemudian dapat meminta dan menggunakan model tersebut segera di file lain. Di bawah ini kami menunjukkan bagaimana Anda dapat menggunakannya untuk mendapatkan semua contoh model _7Sekarang setelah kita memahami sesuatu tentang apa yang dapat dilakukan Mongoose dan bagaimana kita ingin mendesain model kita, saatnya untuk mulai bekerja di situs web LocalLibrary. Hal pertama yang ingin kita lakukan adalah menyiapkan database MongoDB yang dapat kita gunakan untuk menyimpan data perpustakaan kita Untuk tutorial ini, kita akan menggunakan database kotak pasir yang dihosting cloud MongoDB Atlas. Tingkat basis data ini dianggap tidak cocok untuk situs web produksi karena tidak memiliki redundansi, tetapi bagus untuk pengembangan dan pembuatan prototipe. Kami menggunakannya di sini karena gratis dan mudah disiapkan, dan karena MongoDB Atlas adalah database populer sebagai vendor layanan yang mungkin Anda pilih secara wajar untuk database produksi Anda (pilihan populer lainnya pada saat penulisan termasuk Compose, ScaleGrid Catatan. Jika mau, Anda dapat menyiapkan database MongoDb secara lokal dengan mengunduh dan menginstal binari yang sesuai untuk sistem Anda. Petunjuk lainnya dalam artikel ini akan serupa, kecuali untuk URL basis data yang akan Anda tentukan saat menghubungkan. Dalam Tutorial Ekspres Bagian 7. Menyebarkan ke tutorial Produksi kami menghosting aplikasi dan database di Railway, tetapi kami juga bisa menggunakan database di MongoDB Atlas Pertama-tama Anda harus membuat akun dengan MongoDB Atlas (ini gratis, dan Anda hanya perlu memasukkan detail kontak dasar dan mengetahui persyaratan layanan mereka) Setelah masuk, Anda akan dibawa ke layar beranda
Anda sekarang telah membuat database, dan memiliki URL (dengan nama pengguna dan kata sandi) yang dapat digunakan untuk mengaksesnya. Ini akan terlihat seperti. _13Buka prompt perintah dan navigasikan ke direktori tempat Anda membuat situs web Perpustakaan Lokal kerangka Anda. Masukkan perintah berikut untuk menginstal Mongoose (dan dependensinya) dan tambahkan ke paket Anda. json, kecuali Anda sudah melakukannya saat membaca di atas
Buka /aplikasi. js (di root proyek Anda) dan salin teks berikut di bawah tempat Anda mendeklarasikan objek aplikasi Express (setelah baris 14). Ganti string URL database ('insert_your_database_url_here') dengan URL lokasi yang mewakili database Anda sendiri (i. e. menggunakan informasi dari mongoDB Atlas) _9Seperti yang telah dibahas, kode ini membuat koneksi default ke database dan melaporkan kesalahan apa pun ke konsol Kami akan menentukan modul terpisah untuk setiap model, seperti. Mulailah dengan membuat folder untuk model kita di root proyek (/models) dan kemudian buat file terpisah untuk masing-masing model 0Salin kode skema 8 yang ditunjukkan di bawah ini dan tempelkan ke file Anda. /model/penulis. file js. Skema mendefinisikan penulis memiliki _2 SchemaTypes untuk nama depan dan nama keluarga (diperlukan, dengan maksimum 100 karakter), dan 17 bidang untuk tanggal lahir dan kematian _1Kami juga telah mendeklarasikan untuk AuthorSchema bernama "url" yang mengembalikan URL absolut yang diperlukan untuk mendapatkan instance model tertentu — kami akan menggunakan properti di template kami kapan pun kami perlu mendapatkan link ke penulis tertentu Catatan. Mendeklarasikan URL kami sebagai virtual dalam skema adalah ide yang bagus karena URL untuk item hanya perlu diubah di satu tempat. Pada titik ini, tautan yang menggunakan URL ini tidak akan berfungsi, karena kami tidak memiliki rute yang menangani kode untuk instance model individual. Kami akan menyiapkannya di artikel selanjutnya Di akhir modul, kami mengekspor model Salin kode skema 7 yang ditunjukkan di bawah ini dan tempelkan ke file Anda. / model / buku. file js. Sebagian besar mirip dengan model penulis — kami telah mendeklarasikan skema dengan sejumlah bidang string dan virtual untuk mendapatkan URL catatan buku tertentu, dan kami telah mengekspor modelnya _2Perbedaan utama di sini adalah kami telah membuat dua referensi untuk model lain
Terakhir, salin kode skema _0 yang ditunjukkan di bawah ini dan rekatkan ke file Anda. /models/bookinstance. file js. _0 mewakili salinan tertentu dari sebuah buku yang mungkin dipinjam seseorang dan menyertakan informasi tentang apakah salinan tersebut tersedia, pada tanggal berapa diharapkan kembali, dan detail "cetakan" (atau versi) _3Hal-hal baru yang kami tampilkan di sini adalah opsi bidang
Segala sesuatu yang lain harus familiar dari skema kita sebelumnya Bukalah. /model/genre. js dan buat skema untuk menyimpan genre (kategori buku, mis. g. apakah itu fiksi atau non-fiksi, romansa atau sejarah militer, dll. ) Definisinya akan sangat mirip dengan model lainnya
Itu dia. Kami sekarang memiliki semua model untuk penyiapan situs Untuk menguji model (dan untuk membuat beberapa buku contoh dan item lain yang dapat kami gunakan di artikel berikutnya), kami sekarang akan menjalankan skrip independen untuk membuat item dari setiap jenis
Catatan. Buka database Anda di mongoDB Atlas (di tab Collections). Anda sekarang dapat menelusuri koleksi Buku, Penulis, Genre, dan Instans Buku individual, dan memeriksa dokumen individual Pada artikel ini, kita telah belajar sedikit tentang database dan ORM pada Node/Express, dan banyak tentang bagaimana skema dan model Mongoose didefinisikan. Kami kemudian menggunakan informasi ini untuk merancang dan mengimplementasikan model 7, 0, 8 dan 8 untuk situs web LocalLibraryTerakhir, kami menguji model kami dengan membuat sejumlah instance (menggunakan skrip mandiri). Di artikel selanjutnya kita akan melihat membuat beberapa halaman untuk menampilkan objek-objek ini Bagaimana cara membuat skema di MongoDB menggunakan node JS tanpa luwak?Buat Server nodejs
. Untuk menginisialisasi paket. json di folder sumber kami untuk menginstal dependensi, kami menjalankan bagian pertama dari perintah. Dan bagian kedua adalah untuk menginstal ekspres.
Bagaimana cara membuat koleksi di MongoDB dengan node js?Langkah Membuat Collection di MongoDB melalui Node. . Langkah 1. Mulai Layanan MongoDB. . Langkah 2. Dapatkan URL dasar ke Layanan MongoDB. . Langkah 3. Siapkan URL lengkap. . Langkah 4. Buat MongoClient. . Langkah 5. Buat koneksi dari MongoClient ke Server MongoDB dengan bantuan URL Bagaimana cara membuat koleksi secara manual di MongoDB?Dalam MongoDB, db. createCollection(name, options) digunakan untuk membuat koleksi.
Apakah saya perlu menggunakan luwak dengan MongoDB?Mongoose adalah library ODM (Object Data Modeling) untuk MongoDB. Meskipun Anda tidak perlu menggunakan alat Object Data Modeling (ODM) atau Object Relational Mapping (ORM) untuk mendapatkan pengalaman hebat dengan MongoDB, beberapa developer lebih memilihnya. Many Node. |