Node.js MongoDB Tutorial dengan Contoh
Hampir semua aplikasi web modern memiliki semacam sistem penyimpanan data di backend. Misalnya, jika Anda mengambil kasus aplikasi belanja web, data seperti harga suatu barang akan disimpan dalam database.
Kerangka kerja Node js dapat bekerja dengan database dengan kedua relasional (seperti Oracle dan MS SQL Server) dan database non-relasional (seperti MongoDB). Dalam tutorial ini, kita akan melihat bagaimana kita dapat menggunakan database dari dalam aplikasi Node js.
Basis Data Node.js dan NoSQL
Selama bertahun-tahun, database NoSQL seperti MongoDB dan untuk MySQL telah menjadi cukup populer sebagai database untuk menyimpan data. Kemampuan database ini untuk menyimpan semua jenis konten dan khususnya dalam semua jenis format adalah apa yang membuat database ini begitu terkenal.
Node.js memiliki kemampuan untuk bekerja dengan keduanya MySQL dan MongoDB sebagai database. Untuk menggunakan salah satu database ini, Anda perlu mengunduh dan menggunakan modul yang diperlukan menggunakan manajer paket Node.
Untuk MySQL, modul yang diperlukan disebut "mysql" dan untuk menggunakannya MongoDB modul yang diperlukan untuk diinstal adalah “Mongoose.”
Dengan modul ini, Anda dapat melakukan operasi berikut di Node.js
- Kelola penggabungan koneksi – Di sini Anda dapat menentukan jumlah MySQL koneksi database yang harus dipelihara dan disimpan oleh Node.js.
- Membuat dan menutup koneksi ke database. Dalam kedua kasus tersebut, Anda dapat menyediakan fungsi panggilan balik yang dapat dipanggil setiap kali metode koneksi “buat” dan “tutup” dijalankan.
- Kueri dapat dijalankan untuk mendapatkan data dari database masing-masing untuk mengambil data.
- Manipulasi data, seperti memasukkan data, menghapus, dan memperbarui data juga dapat dilakukan dengan modul ini.
Untuk topik lainnya, kami akan melihat bagaimana kami dapat bekerja sama MongoDB database di dalamnya Node.js.
Menggunakan MongoDB dan Node.js
Seperti yang telah dibahas pada topik sebelumnya, MongoDB adalah salah satu database paling populer yang digunakan bersama dengan Node.js.
Selama bab ini, kita akan melihat
Bagaimana kita dapat menjalin hubungan dengan a MongoDB Database
Bagaimana kita dapat melakukan operasi normal membaca data dari database serta memasukkan, menghapus, dan memperbarui catatan di a MongoDB database.
Untuk keperluan bab ini, mari kita asumsikan kita memiliki hal di bawah ini MongoDB data di tempat.
Nama basis data: EmployeeDB
Nama koleksi: Karyawan
Documents { {Employeeid : 1, Employee Name : Guru99}, {Employeeid : 2, Employee Name : Joe}, {Employeeid : 3, Employee Name : Martin}, }
- Memasang Modul NPM
Anda memerlukan driver untuk mengakses Mongo dari dalam aplikasi Node. Ada sejumlah driver Mongo yang tersedia, namun MongoDB termasuk yang paling populer. Untuk menginstal MongoDB modul, jalankan perintah di bawah ini
npm instal mongodb
- Membuat dan menutup koneksi ke a MongoDB database. Cuplikan kode di bawah ini menunjukkan cara membuat dan menutup koneksi ke a MongoDB database.
Penjelasan Kode:
- Langkah pertama adalah memasukkan modul luwak, yang dilakukan melalui fungsi require. Setelah modul ini terpasang, kita dapat menggunakan fungsi-fungsi penting yang tersedia dalam modul ini untuk membuat koneksi ke database.
- Selanjutnya, kita tentukan string koneksi kita ke database. Pada string connect, ada 3 nilai kunci yang diteruskan.
- Yang pertama adalah 'mongodb' yang menentukan bahwa kita terhubung ke database mongoDB.
- Berikutnya adalah 'localhost' yang artinya kita terhubung ke database di mesin lokal.
- Berikutnya adalah 'EmployeeDB' yang merupakan nama database yang ditentukan di kita MongoDB database.
- Langkah selanjutnya adalah benar-benar terhubung ke database kita. Fungsi connect mengambil URL kita dan memiliki fasilitas untuk menentukan fungsi panggilan balik. Ini akan dipanggil ketika koneksi ke database dibuka. Ini memberi kita kesempatan untuk mengetahui apakah koneksi database berhasil atau tidak.
- Dalam fungsinya, kami menulis string “Koneksi terjalin” ke konsol untuk menunjukkan bahwa koneksi berhasil telah dibuat.
- Terakhir, kami menutup koneksi menggunakan pernyataan db.close.
Jika kode di atas dijalankan dengan benar, string “Connected” akan ditulis ke konsol seperti yang ditunjukkan di bawah ini.
- Meminta data dalam a MongoDB Database - Menggunakan MongoDB driver kita juga dapat mengambil data dari MongoDB database. Bagian di bawah ini akan menunjukkan bagaimana kita dapat menggunakan driver untuk mengambil semua dokumen dari koleksi Karyawan kita di database EmployeeDB kami. Ini adalah koleksi kami MongoDB database, yang berisi semua dokumen terkait karyawan. Setiap dokumen memiliki id objek, nama Karyawan, dan id karyawan untuk menentukan nilai dokumen.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); cursor.each(function(err, doc) { console.log(doc); }); });
Penjelasan Kode:
- Pada langkah pertama, kita membuat kursor (Kursor adalah pointer yang digunakan untuk menunjuk ke berbagai record yang diambil dari database. Kursor kemudian digunakan untuk mengiterasi berbagai record dalam database. Di sini kita mendefinisikan nama variabel yang disebut kursor yang akan digunakan untuk menyimpan pointer ke record yang diambil dari database.) yang menunjuk ke record yang diambil dari koleksi MongoDb. Kita juga memiliki fasilitas untuk menentukan koleksi 'Employee' untuk mengambil record. Fungsi find() digunakan untuk menentukan bahwa kita ingin mengambil semua dokumen dari MongoDB koleksi.
- Kami sekarang mengulangi kursor kami dan untuk setiap dokumen di kursor kami akan menjalankan suatu fungsi.
- Fungsi kami hanya akan mencetak konten setiap dokumen ke konsol.
Catatan: - Dimungkinkan juga untuk mengambil catatan tertentu dari database. Hal ini dapat dilakukan dengan menentukan kondisi pencarian di fungsi find(). Misalnya, jika Anda hanya ingin mengambil record yang memiliki nama karyawan Guru99, maka pernyataan ini dapat ditulis sebagai berikut
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Jika kode di atas berhasil dijalankan, output berikut akan ditampilkan di konsol Anda.
Keluaran:
Dari keluarannya,
- Anda akan dapat melihat dengan jelas bahwa semua dokumen dari koleksi telah diambil. Hal ini dimungkinkan dengan menggunakan metode find() dari koneksi mongoDB (db) dan melakukan iterasi melalui semua dokumen menggunakan kursor.
- Memasukkan dokumen ke dalam koleksi – Dokumen dapat dimasukkan ke dalam koleksi menggunakan metode insertOne yang disediakan oleh MongoDB pustaka. Potongan kode di bawah ini menunjukkan cara memasukkan dokumen ke dalam koleksi mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').insertOne({ Employeeid: 4, EmployeeName: "NewEmployee" }); });
Penjelasan Kode:
- Di sini kita menggunakan metode insertOne dari MongoDB perpustakaan untuk memasukkan dokumen ke dalam koleksi Karyawan.
- Kami menentukan rincian dokumen tentang apa yang perlu dimasukkan ke dalam koleksi Karyawan.
Jika sekarang Anda memeriksa isi file Anda MongoDB database, Anda akan menemukan record dengan Employeeid 4 dan EmployeeName “NewEmployee” dimasukkan ke dalam koleksi Employee.
Catatan: Konsol tidak akan menampilkan keluaran apa pun karena catatan sedang dimasukkan ke dalam database dan tidak ada keluaran yang dapat ditampilkan di sini.
Untuk memeriksa apakah data telah dimasukkan dengan benar ke dalam database, Anda perlu menjalankan perintah berikut di MongoDB
- Gunakan EmployeeDB
- db.Employee.find({Employeeid :4 })
Pernyataan pertama memastikan bahwa Anda terhubung ke database EmployeeDb. Pernyataan kedua mencari catatan yang memiliki id karyawan 4.
- Memperbarui dokumen dalam koleksi – Dokumen dapat diperbarui dalam koleksi menggunakan metode updateOne yang disediakan oleh MongoDB pustaka. Potongan kode di bawah ini menunjukkan cara memperbarui dokumen dalam koleksi mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').updateOne({ "EmployeeName": "NewEmployee" }, { $set: { "EmployeeName": "Mohan" } }); });
Penjelasan Kode:
- Di sini kami menggunakan metode “updateOne” dari MongoDB pustaka yang digunakan untuk memperbarui dokumen dalam koleksi mongoDB.
- Kami menentukan kriteria pencarian dokumen mana yang perlu diperbarui. Dalam kasus kami, kami ingin mencari dokumen yang memiliki EmployeeName “NewEmployee.”
- Kami kemudian ingin menetapkan nilai EmployeeName dokumen dari “NewEmployee” menjadi “Mohan”.
Jika sekarang Anda memeriksa isi file Anda MongoDB database, Anda akan menemukan catatan dengan Employeeid 4 dan EmployeeName “Mohan” yang diperbarui di koleksi Employee.
Untuk memeriksa apakah data telah diperbarui dengan benar di database, Anda perlu menjalankan perintah berikut di MongoDB
- Gunakan EmployeeDB
- db.Employee.find({Employeeid :4 })
Pernyataan pertama memastikan bahwa Anda terhubung ke database EmployeeDb. Pernyataan kedua mencari catatan yang memiliki id karyawan 4.
- Menghapus dokumen dalam koleksi – Dokumen dapat dihapus dalam koleksi menggunakan metode “deleteOne” yang disediakan oleh MongoDB pustaka. Potongan kode di bawah ini menunjukkan cara menghapus dokumen dalam koleksi mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').deleteOne( { "EmployeeName": "Mohan" } ); });
Penjelasan Kode:
- Di sini kami menggunakan metode “deleteOne” dari MongoDB pustaka yang digunakan untuk menghapus dokumen dalam koleksi mongoDB.
- Kami menentukan kriteria pencarian dokumen mana yang perlu dihapus. Dalam kasus kami, kami ingin mencari dokumen yang memiliki Nama Karyawan “Mohan” dan menghapus dokumen ini.
Jika sekarang Anda memeriksa isi file Anda MongoDB database, Anda akan menemukan catatan dengan Employeeid 4 dan EmployeeName “Mohan” dihapus dari koleksi Employee.
Untuk memeriksa apakah data telah diperbarui dengan benar di database, Anda perlu menjalankan perintah berikut di MongoDB
- Gunakan EmployeeDB
- db.Karyawan.temukan()
Pernyataan pertama memastikan bahwa Anda terhubung ke database EmployeeDb. Pernyataan kedua mencari dan menampilkan semua catatan dalam koleksi karyawan. Di sini Anda dapat melihat apakah catatan tersebut telah dihapus atau belum.
Cara membuat aplikasi node express dengan MongoDB untuk menyimpan dan menyajikan konten
Membangun aplikasi dengan kombinasi keduanya menggunakan express dan MongoDB cukup umum saat ini.
Saat bekerja dengan JavaNaskah aplikasi berbasis web, biasanya di sini disebut tumpukan MEAN.
- Istilah tumpukan MEAN mengacu pada kumpulan JavaTeknologi berbasis skrip yang digunakan untuk mengembangkan aplikasi web.
- MEAN adalah singkatan dari MongoDB, ExpressJS, AngularJS, dan Node.js.
Oleh karena itu, selalu baik untuk memahami cara kerja Node.js dan MongoDB bekerja sama untuk mengirimkan aplikasi yang berinteraksi dengan database backend.
Mari kita lihat contoh sederhana bagaimana kita dapat menggunakan “ekspres” dan “MongoDB" bersama. Contoh kita akan menggunakan koleksi Karyawan yang sama di MongoDB Basis data EmployeeDB.
Kami sekarang akan menggabungkan Express untuk menampilkan data di halaman web kami ketika diminta oleh pengguna. Saat aplikasi kita berjalan di Node.js, seseorang mungkin perlu menelusuri URL-nya http://localhost:3000/Employeeid.
Saat halaman diluncurkan, semua id karyawan di koleksi Karyawan akan ditampilkan. Jadi mari kita lihat cuplikan kode di bagian yang memungkinkan kita mencapai hal ini.
Langkah 1) Tentukan semua perpustakaan yang perlu digunakan dalam aplikasi kita, yang dalam kasus kita adalah keduanya MongoDB dan perpustakaan ekspres.
Penjelasan Kode:
- Kami mendefinisikan perpustakaan 'ekspres' kami, yang akan digunakan dalam aplikasi kami.
- Kami mendefinisikan 'MongoDB' perpustakaan, yang akan digunakan dalam aplikasi kita untuk menghubungkan ke MongoDB database.
- Di sini kami mendefinisikan URL database kami untuk dihubungkan.
- Terakhir, kami mendefinisikan string yang akan digunakan untuk menyimpan koleksi ID karyawan yang perlu ditampilkan di browser nanti.
Langkah 2) Pada langkah ini, kita sekarang akan mendapatkan semua catatan dalam koleksi 'Karyawan' dan mengerjakannya sesuai dengan itu.
Penjelasan Kode:
- Kami membuat rute ke aplikasi kami yang disebut 'Employeeid.' Jadi, kapan pun ada orang yang menelusurinya http://localhost:3000/Employeeid aplikasi kita, cuplikan kode yang ditentukan untuk rute ini akan dieksekusi.
- Di sini kita mendapatkan semua catatan dalam koleksi 'Karyawan' kita melalui perintah db.collection('Employee').find(). Kami kemudian menugaskan koleksi ini ke variabel yang disebut kursor. Dengan menggunakan variabel kursor ini, kita akan dapat menelusuri semua catatan koleksi.
- Kami sekarang menggunakan fungsi kursor.each() untuk menavigasi semua catatan koleksi kami. Untuk setiap record, kita akan menentukan cuplikan kode tentang apa yang harus dilakukan ketika setiap record diakses.
- Terakhir, kita melihat bahwa jika record yang dikembalikan bukan null, maka kita mengambil karyawan tersebut melalui perintah “item.Employeeid”. Kode selanjutnya hanya untuk membuat kode HTML yang tepat yang memungkinkan hasil kami ditampilkan dengan benar di browser.
Langkah 3) Pada langkah ini, kita akan mengirimkan keluaran kita ke halaman web dan membuat aplikasi kita mendengarkan pada port tertentu.
Penjelasan Kode:
- Di sini kami mengirimkan seluruh konten yang dibuat pada langkah sebelumnya ke halaman web kami. Parameter 'res' memungkinkan kita mengirim konten ke halaman web kita sebagai respons.
- Kami membuat seluruh aplikasi Node.js mendengarkan pada port 3000.
Keluaran:
Dari keluarannya,
- Ini jelas menunjukkan bahwa semua ID karyawan di koleksi Karyawan telah diambil. Ini karena kami menggunakan MongoDB driver untuk terhubung ke database dan mengambil semua catatan Karyawan dan selanjutnya menggunakan "ekspres" untuk menampilkan catatan tersebut.
Ini kode untuk referensi Anda
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); //noinspection JSDeprecatedSymbols cursor.each(function(err, item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }); res.send(str); db.close(); }); }); var server = app.listen(3000, function() {});
Catatan: kursor.masing-masing mungkin tidak digunakan lagi berdasarkan versi Anda MongoDB pengemudi. Anda dapat menambahkan //noinspection JSDeprecatedSymbols sebelum kursor.each untuk menghindari masalah ini. Alternatifnya, Anda dapat menggunakan forEach. Di bawah ini adalah contoh kode menggunakan forEach
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var collection = db.collection('Employee'); var cursor = collection.find({}); str = ""; cursor.forEach(function(item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }, function(err) { res.send(err); db.close(); } ); }); }); var server = app.listen(8080, function() {});
Ringkasan
- Node.js digunakan bersama dengan NoSQL database untuk membangun banyak aplikasi web modern. Beberapa database yang umum digunakan adalah MySQL dan MongoDB.
- Salah satu modul umum yang digunakan untuk bekerja MongoDB database adalah modul yang disebut 'MongoDB.' Modul ini diinstal melalui manajer paket Node.
- Dengan MongoDB modul, dimungkinkan untuk menanyakan catatan dalam koleksi dan melakukan operasi pembaruan, penghapusan, dan penyisipan normal.
- Terakhir, salah satu praktik modern adalah dengan menggunakan kerangka kerja ekspres MongoDB untuk memberikan aplikasi modern. Kerangka kerja Express dapat memanfaatkan data yang dikembalikan oleh MongoDB driver dan menampilkan data kepada pengguna di halaman web yang sesuai.