Tutorial MongoDB Node.js dengan Contoh

Daftar Isi:

Anonim

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 di database.

Kerangka kerja Node js dapat bekerja dengan database dengan database 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.

Dalam tutorial ini, Anda akan belajar-

  • Node.js dan NoSQL Database
  • Menggunakan MongoDB dan Node.js
  • Cara membuat aplikasi node express dengan MongoDB untuk menyimpan dan menyajikan konten

Node.js dan NoSQL Database

Selama bertahun-tahun, database NoSQL seperti MongoDB dan MySQL telah menjadi cukup populer sebagai database untuk menyimpan data. Kemampuan database ini untuk menyimpan semua jenis konten dan khususnya dalam jenis format apa pun yang membuat database ini begitu terkenal.

Node.js memiliki kemampuan untuk bekerja dengan MySQL dan MongoDB sebagai database. Untuk menggunakan salah satu dari database ini, Anda perlu mendownload dan menggunakan modul yang diperlukan menggunakan Node package manager.

Untuk MySQL, modul yang diperlukan disebut "mysql" dan untuk menggunakan MongoDB modul yang diperlukan untuk diinstal adalah "Mongoose."

Dengan modul ini, Anda dapat melakukan operasi berikut di Node.js

  1. Kelola penggabungan koneksi - Di sinilah Anda dapat menentukan jumlah koneksi database MySQL yang harus dipertahankan dan disimpan oleh Node.js.
  2. Buat dan tutup koneksi ke database. Dalam kedua kasus tersebut, Anda dapat menyediakan fungsi panggilan balik yang dapat dipanggil setiap kali metode koneksi "buat" dan "tutup" dijalankan.
  3. Query dapat dieksekusi untuk mendapatkan data dari database masing-masing untuk mengambil data.
  4. Manipulasi data, seperti memasukkan data, menghapus, dan memperbarui data juga dapat dilakukan dengan modul ini.

Untuk topik yang tersisa, kita akan melihat bagaimana kita dapat bekerja dengan database MongoDB dalam Node.js.

Menggunakan MongoDB dan Node.js

Seperti yang dibahas di topik sebelumnya, MongoDB adalah salah satu database paling populer yang digunakan bersama dengan Node.js.

Selama bab ini, kita akan lihat

Bagaimana kami dapat membuat koneksi dengan database MongoDB

Bagaimana kita dapat melakukan operasi normal membaca data dari database serta memasukkan, menghapus, dan memperbarui catatan dalam database MongoDB.

Untuk tujuan bab ini, mari kita asumsikan bahwa kita memiliki data MongoDB di bawah ini.

Nama database: EmployeeDB

Nama koleksi: Karyawan

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. Menginstal Modul NPM

Anda membutuhkan driver untuk mengakses Mongo dari dalam aplikasi Node. Ada sejumlah driver Mongo yang tersedia, tetapi MongoDB termasuk yang paling populer. Untuk menginstal modul MongoDB, jalankan perintah di bawah ini

npm instal mongodb

  1. Membuat dan menutup koneksi ke database MongoDB. Potongan kode di bawah ini menunjukkan cara membuat dan menutup koneksi ke database MongoDB.

Penjelasan Kode:

  1. Langkah pertama adalah memasukkan modul luwak, yang dilakukan melalui fungsi Requirement. Setelah modul ini terpasang, kita dapat menggunakan fungsi yang diperlukan yang tersedia di modul ini untuk membuat koneksi ke database.
  2. Selanjutnya, kami menentukan string koneksi kami ke database. Dalam string koneksi, ada 3 nilai kunci yang dilewatkan.
  • Yang pertama adalah 'mongodb' yang menentukan bahwa kita terhubung ke database mongoDB.
  • Selanjutnya adalah 'localhost' yang berarti kita terhubung ke database di mesin lokal.
  • Selanjutnya adalah 'EmployeeDB' yang merupakan nama database yang didefinisikan di database MongoDB kita.
  1. Langkah selanjutnya adalah benar-benar terhubung ke database kita. Fungsi menghubungkan mengambil URL kita dan memiliki fasilitas untuk menentukan fungsi panggilan balik. Ini akan dipanggil ketika koneksi dibuka ke database. Ini memberi kita kesempatan untuk mengetahui apakah koneksi database berhasil atau tidak.
  2. Dalam fungsinya, kita menulis string "Sambungan dibuat" ke konsol untuk menunjukkan bahwa sambungan berhasil dibuat.
  3. Akhirnya, 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.

  1. Membuat kueri data dalam database MongoDB - Dengan menggunakan driver MongoDB, kita juga dapat mengambil data dari database MongoDB.

    Bagian di bawah ini akan menunjukkan bagaimana kami dapat menggunakan driver untuk mengambil semua dokumen dari koleksi Karyawan kami di database EmployeeDB kami. Ini adalah koleksi di database MongoDB kami, 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:

  1. Pada langkah pertama, kita membuat kursor (kursor adalah penunjuk yang digunakan untuk menunjuk ke berbagai catatan yang diambil dari database. Kursor kemudian digunakan untuk beralih melalui catatan yang berbeda dalam database. Di sini kita mendefinisikan a nama variabel yang disebut kursor yang akan digunakan untuk menyimpan penunjuk ke catatan yang diambil dari database.) yang menunjuk ke catatan yang diambil dari koleksi MongoDb. Kami juga memiliki fasilitas untuk menentukan koleksi 'Karyawan' untuk mengambil catatan. Fungsi find () digunakan untuk menentukan bahwa kita ingin mengambil semua dokumen dari koleksi MongoDB.

  2. Kami sekarang melakukan iterasi melalui kursor kami dan untuk setiap dokumen di kursor kami akan menjalankan fungsi.

  3. Fungsi kami hanya akan mencetak konten setiap dokumen ke konsol.

Catatan: - Dimungkinkan juga untuk mengambil rekaman tertentu dari database. Ini bisa dilakukan dengan menentukan kondisi pencarian dalam 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. Ini dimungkinkan dengan menggunakan metode find () dari koneksi mongoDB (db) dan melakukan iterasi melalui semua dokumen menggunakan kursor.
  1. Memasukkan dokumen dalam koleksi - Dokumen dapat dimasukkan ke dalam koleksi menggunakan metode insertOne yang disediakan oleh pustaka MongoDB. Potongan kode di bawah ini menunjukkan bagaimana kita dapat 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:

  1. Di sini kami menggunakan metode insertOne dari pustaka MongoDB untuk memasukkan dokumen ke dalam koleksi Karyawan.
  2. Kami menentukan detail dokumen tentang apa yang perlu dimasukkan ke dalam koleksi Karyawan.

Jika Anda sekarang memeriksa konten database MongoDB Anda, Anda akan menemukan catatan dengan Employeeid of 4 dan EmployeeName dari "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 bahwa data telah dimasukkan dengan benar ke dalam database, Anda perlu menjalankan perintah berikut di MongoDB

  1. Gunakan EmployeeDB
  2. db.Employee.find ({Employeeid: 4})

Pernyataan pertama memastikan bahwa Anda terhubung ke database EmployeeDb. Pernyataan kedua mencari catatan yang memiliki id karyawan 4.

  1. Memperbarui dokumen dalam koleksi - Dokumen dapat diperbarui dalam koleksi menggunakan metode updateOne yang disediakan oleh pustaka MongoDB. Potongan kode di bawah ini menunjukkan bagaimana 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:

  1. Di sini kami menggunakan metode "updateOne" dari pustaka MongoDB, yang digunakan untuk memperbarui dokumen dalam koleksi mongoDB.
  2. Kami menentukan kriteria pencarian dokumen mana yang perlu diperbarui. Dalam kasus kami, kami ingin mencari dokumen yang memiliki EmployeeName dari "NewEmployee."
  3. Kami kemudian ingin menyetel nilai EmployeeName dokumen dari "NewEmployee" menjadi "Mohan".

Jika Anda sekarang memeriksa konten database MongoDB Anda, Anda akan menemukan catatan dengan Employeeid of 4 dan EmployeeName of "Mohan" diperbarui dalam koleksi Employee.

Untuk memeriksa bahwa data telah diperbarui dengan benar dalam database, Anda perlu menjalankan perintah berikut di MongoDB

  1. Gunakan EmployeeDB
  2. db.Employee.find ({Employeeid: 4})

Pernyataan pertama memastikan bahwa Anda terhubung ke database EmployeeDb. Pernyataan kedua mencari catatan yang memiliki id karyawan 4.

  1. Menghapus dokumen dalam koleksi - Dokumen dapat dihapus dalam koleksi menggunakan metode "deleteOne" yang disediakan oleh pustaka MongoDB. 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:

  1. Di sini kita menggunakan metode "deleteOne" dari pustaka MongoDB, yang digunakan untuk menghapus dokumen dalam koleksi mongoDB.
  2. Kami menentukan kriteria pencarian dokumen mana yang perlu dihapus. Dalam kasus kami, kami ingin mencari dokumen yang memiliki EmployeeName "Mohan" dan menghapus dokumen ini.

Jika Anda sekarang memeriksa konten database MongoDB Anda, Anda akan menemukan catatan dengan Employeeid of 4 dan EmployeeName of "Mohan" dihapus dari koleksi Employee.

Untuk memeriksa bahwa data telah diperbarui dengan benar dalam database, Anda perlu menjalankan perintah berikut di MongoDB

  1. Gunakan EmployeeDB
  2. db.Employee.find ()

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 rekaman telah dihapus atau belum.

Cara membuat aplikasi node express dengan MongoDB untuk menyimpan dan menyajikan konten

Membangun aplikasi dengan kombinasi penggunaan express dan MongoDB sudah cukup umum saat ini.

Saat bekerja dengan aplikasi berbasis web JavaScript, yang biasanya di sini adalah istilah MEAN stack.

  • Istilah MEAN stack mengacu pada kumpulan teknologi berbasis JavaScript yang digunakan untuk mengembangkan aplikasi web.
  • MEAN adalah singkatan dari MongoDB, ExpressJS, AngularJS, dan Node.js.

Oleh karena itu, selalu baik untuk memahami bagaimana Node.js dan MongoDB bekerja sama untuk mengirimkan aplikasi yang berinteraksi dengan database backend.

Mari kita lihat contoh sederhana bagaimana kita bisa menggunakan "express" dan "MongoDB" secara bersamaan. Contoh kami akan menggunakan koleksi Karyawan yang sama di database MongoDB EmployeeDB.

Kami sekarang akan menggabungkan Express untuk menampilkan data di halaman web kami jika diminta oleh pengguna. Ketika aplikasi kita berjalan di Node.js, seseorang mungkin perlu menjelajahi URL http: // localhost: 3000 / Employeeid .

Saat halaman diluncurkan, semua id karyawan dalam koleksi Karyawan akan ditampilkan. Jadi mari kita lihat potongan kode di bagian yang memungkinkan kita mencapai ini.

Langkah 1) Tentukan semua pustaka yang perlu digunakan dalam aplikasi kita, yang dalam kasus kita adalah pustaka MongoDB dan ekspres.

Penjelasan Kode:

  1. Kami mendefinisikan perpustakaan 'ekspres' kami, yang akan digunakan dalam aplikasi kami.
  2. Kami mendefinisikan pustaka 'ekspres' kami, yang akan digunakan dalam aplikasi kami untuk menghubungkan ke database MongoDB kami.
  3. Di sini kita mendefinisikan URL dari database kita untuk dihubungkan.
  4. Terakhir, kami mendefinisikan string yang akan digunakan untuk menyimpan koleksi id karyawan kami yang perlu ditampilkan di browser nanti.

Langkah 2) Pada langkah ini, kita sekarang akan mendapatkan semua catatan dalam koleksi 'Karyawan' kita dan mengerjakannya sesuai dengan itu.

Penjelasan Kode:

  1. Kami membuat rute ke aplikasi kami yang disebut 'Employeeid.' Jadi setiap kali ada yang meramban ke http: // localhost: 3000 / Employeeid aplikasi kita, potongan kode yang ditentukan untuk rute ini akan dieksekusi.
  2. Di sini kita mendapatkan semua record dalam koleksi 'Employee' 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.
  3. Kami sekarang menggunakan fungsi cursor.each () untuk menavigasi semua rekaman koleksi kami. Untuk setiap record, kita akan menentukan potongan kode tentang apa yang harus dilakukan ketika setiap record diakses.
  4. Akhirnya, kita melihat bahwa jika record yang dikembalikan bukan null, maka kita mengambil karyawan tersebut melalui perintah "item.Employeeid". Sisa kode ini hanya untuk membuat kode HTML yang tepat yang akan memungkinkan hasil kami ditampilkan dengan benar di browser.

Langkah 3) Pada langkah ini, kita akan mengirim output kita ke halaman web dan membuat aplikasi kita mendengarkan pada port tertentu.

Penjelasan Kode:

  1. 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 tanggapan.
  2. Kami membuat seluruh aplikasi Node.js kami mendengarkan pada port 3000.

Keluaran:

Dari keluarannya,

  • Ini dengan jelas menunjukkan bahwa semua employeeid dalam koleksi Employee telah diambil. Ini karena kami menggunakan driver MongoDB untuk menyambung ke database dan mengambil semua catatan Karyawan dan kemudian menggunakan "ekspres" untuk menampilkan catatan.

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 JSDeprecatedSymbolscursor.each(function(err, item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "
";}});res.send(str);db.close();});});var server = app.listen(3000, function() {});

Catatan: cursor.each mungkin tidak digunakan lagi berdasarkan versi driver MongoDB Anda. Anda dapat menambahkan // noinspection JSDeprecatedSymbols sebelum cursor.each untuk menghindari masalah. Atau, Anda dapat menggunakan forEach. Di bawah ini adalah kode contoh yang 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 + "
";}}, function(err) {res.send(err);db.close();});});});var server = app.listen(8080, function() {});

Ringkasan

  • Node.js digunakan bersama dengan database NoSQL untuk membangun banyak aplikasi web modern. Beberapa database umum yang digunakan adalah MySQL dan MongoDB.
  • Salah satu modul umum yang digunakan untuk bekerja dengan database MongoDB adalah modul yang disebut 'MongoDB.' Modul ini diinstal melalui manajer paket Node.
  • Dengan modul MongoDB, dimungkinkan untuk membuat kueri catatan dalam koleksi dan melakukan pembaruan normal, menghapus dan menyisipkan operasi.
  • Terakhir, salah satu praktik modern adalah menggunakan kerangka kerja ekspres bersama dengan MongoDB untuk mengirimkan aplikasi modern. Framework Express dapat menggunakan data yang dikembalikan oleh driver MongoDB dan menampilkan data tersebut kepada pengguna di halaman web yang sesuai.