Masukkan pembaruan, hapus di node js mongodb

Di blog ini, mari kita lihat apa itu CRUD, demonstrasi operasi CRUD di MongoDB, dan bagaimana operasi dilakukan dengan cara Sinkron dan Asinkron. Pengetahuan dasar Node. js dihargai

Basis data NoSQL digunakan. MongoDB

Daftar isi

1. pengantar

CRUD adalah singkatan dari CREATE, READ, UPDATE & DELETE, yang merupakan operasi dasar dalam database

Dalam posting ini, saya telah menggunakan MongoDB sebagai database utama saya, yang merupakan database NoSQL. Berbeda dengan model baris/kolom tradisional, ini menyimpan data alias dokumen dalam format JSON dan melakukan operasi CRUD menggunakan Node. bahasa js

Pada dasarnya Node. js berfungsi asinkron atau non-pemblokiran secara default sehingga tidak menunggu jika CPU digunakan secara intensif oleh kode

Jadi merancang operasi CRUD sebagai sinkron atau asinkron berdasarkan kasus kami adalah proses yang menantang, terutama ketika kami menggunakannya dalam operasi server waktu nyata. Di bagian blog berikut, saya telah menjelaskan tentang bagaimana saya melakukan operasi CRUD dengan cara sinkronisasi/async

Saya telah memberikan contoh Database Film secara keseluruhan, yang berisi detail yang terkait dengan film tertentu sehingga Anda dapat memanipulasinya berdasarkan kasus penggunaan Anda

2. Menyiapkan MongoDB (NoSQL)

MongoDB adalah database dokumen, yang artinya menyimpan data dalam dokumen mirip JSON. Kami percaya ini adalah cara paling alami untuk berpikir tentang data dan jauh lebih ekspresif & kuat daripada model baris/kolom tradisional

Kami memerlukan dua komponen utama di bawah ini untuk menyiapkan browser MongoDB

  1. Server Komunitas MongoDB — Unduh di sini
  2. Kompas MongoDB (Penampil GUI) — Unduh di sini

Server Komunitas MongoDB

Kompas MongoDB (Penampil GUI untuk MongoDB)

Setelah menginstal kedua aplikasi, kita perlu menambahkan jalur server MongoDB ke Variabel Lingkungan di PC Anda. Jadi navigasikan diri Anda di direktori C PC Anda dan temukan lokasi mongod. exe dan salin jalur alamat. Dalam kasus saya, saya menemukan alamatnya

C. \Program Files\MongoDB\Server\4. 4\bin

Tambahkan lokasi di atas ke variabel lingkungan seperti di bawah ini

Sekarang, kami siap membuat dokumen di database MongoDB kami. Juga, kita dapat melihat database di Kompas MongoDB, setelah membuat dokumen pertama

Tampilan dokumen Kompas MongoDB. Sumber — Penulis

3. Eksekusi Sinkron Vs Asinkron

Di Node. Js, kita dapat melakukan operasi CRUD basis data dengan cara sinkron (pemblokiran) dan asinkron (non-pemblokiran)

Terkadang saat melakukan operasi CRUD, kita mungkin memerlukan variabel untuk dikirim melalui API atau menggunakannya dalam kode selanjutnya, dll. , Dalam hal ini, kami menggunakan pemrograman sinkron, di mana baris dalam kode menunggu baris sebelumnya selesai sebelum dieksekusi

Ini adalah proses yang memakan waktu, jadi alternatifnya kita dapat melakukan operasi secara asinkron. Ini murni berdasarkan kasus penggunaan yang sedang kami kerjakan. Kita akan melihat demonstrasi di kedua cara untuk melakukan operasi CRUD yang sama

4. Membuat Skema, Model, dan Objek

Skema seperti cetak biru yang menentukan apa yang akan disimpan dalam database dan dalam format apa

Untuk melakukan demonstrasi ini dengan cara yang lebih efektif dan mudah dipahami, seperti yang saya katakan sebelumnya, saya akan membuat database film yang berisi properti film seperti,

  1. Nama film — (String)
  2. Direktur — (String)
  3. Peringkat IMDB — (Angka)
  4. Transmisikan — (Larik)
  5. Tanggal rilis — (Tanggal waktu)
  6. Genre — (String)
  7. Sekuel — (Boolean)

Alasan utama untuk menyimpan elemen di atas adalah untuk menggabungkan semua jenis struktur data seperti String, Boolean, Number, Array, DateTime, dll. ,

const mongoose = require('mongoose') // npm install --save mongoose console.clear() // Creating a Database mongoose.connect('mongodb://localhost/MOVIELIBRARY', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB...')) .catch(err => console.error('Could not connect to MongoDB...', err)); const movieSchema = new mongoose.Schema({ movieName : String, director: String, imdbRating: Number, cast: [String], releaseDate: Date, genre: String, sequel: Boolean }); // Creating an Class based on the Schema (blueprint / template) const movieClass = mongoose.model('movieClass', movieSchema); // Creating a new object (Instance of a class) const tenet = new movieClass({ movieName : "Tenet", director: "Christopher Nolan", imdbRating: 8, cast: ["George David Washington, Robert Pattinson"], releaseDate: new Date('2020-12-04'), genre: "science-fiction", sequel: false }) const result = tenet.save(); console.log('Document created', result)

Jadi pada cuplikan kode di atas, saya telah membuat movieSchema yang berisi cetak biru dokumen tersebut. Dan nanti saya membuat konstanta movieClass yang merupakan model yang dibuat berdasarkan skema

Dengan menggunakan model tersebut, kita dapat membuat instance alias objek yang digunakan untuk entri baru dalam dokumen. Ini sangat mirip dengan konsep kelas dan objek OOPS

Dan seperti yang Anda lihat, saya telah membuat objek baru yang disebut 'tenet' menyerupai nama film, mengisi bidang, dan kemudian menyimpannya. Sekarang jika kita memeriksa penampil basis data GUI — Kompas MongoDB, kita harus melihat dokumen baru dibuat

Sekarang mari kita lanjutkan lebih jauh dengan operasi CRUD baik secara sinkron maupun asinkron

5. BUAT (Sinkron)

Kami telah membuat dokumen baru dengan nama 'tenet' sebelumnya. Nah sekarang kita buat sebuah fungsi yang bisa digunakan untuk membuat banyak listing film selanjutnya

const movieClass = require('./movieSchema') // // CREATE // Function Declaration async function insertMovie(name_, director_, rating_, cast_, date_, genre_, sequel_){ const movieObject = new movieClass({ movieName : name_, director: director_, imdbRating: rating_, cast: cast_, releaseDate: date_, genre: genre_, sequel: sequel_ }); result = await movieObject.save() return result } // Function Call let output_1 = insertMovie('Inception', 'Christopher Nolan', 7, ['Leonardo DiCaprio', 'Cillian Murphy'], new Date('2010-07-16'), 'science-fiction', false) output_1.then(function(response) { console.log(response, 'output response') }) // Function Call let output_2 = insertMovie('Tenet', 'Christopher Nolan', 7, ['George David Washington', 'Robert Pattinson'], new Date('2020-12-04'), 'science-fiction', false) output_2.then(function(response) { console.log(response, 'output response') }) // Function Call let output_3 = insertMovie('The Conjuring', 'James Wan', 6, ['Vera Farmiga', 'Patrick Wilson'], new Date('2013-07-15'), 'supernatural horror', true) output_3.then(function(response) { console.log(response, 'output response') })_

Setelah fungsi insertMovie dideklarasikan, kita dapat melakukan pemanggilan fungsi dengan parameter inputnya, yang perlu diperbarui di database. Setelah dimasukkan, kami akan mendapatkan dokumen yang dimasukkan. Di sini kami telah memasukkan 3 film

6. BUAT (Asinkron)

Demikian pula, kita dapat memasukkan dokumen baru ke Mongo DB, tanpa menunggu atau tanpa pemblokiran kode
Juga, saya telah menambahkan 3 set film lainnya menggunakan cara tanpa pemblokiran kode

const movieClass = require('./movieSchema') // // CREATE var theDarkKnight = new movieClass({movieName : "The dark knight", director: "Christopher Nolan", imdbRating: 8, cast: ["Christian Bale", "Heath Ledger"], releaseDate: new Date('2008-01-14'), genre: "superhero", sequel: true}) console.log('DB Updated'); theDarkKnight.save() var djangoUnchained = new movieClass({movieName : "Django Unchained", director: "Quentin Tarantino", imdbRating: 8, cast: ["Christoph Waltz", "Jamie Foxx"], releaseDate: new Date('2012-12-12'), genre: "revisionist Western", sequel: false}) console.log('DB Updated'); djangoUnchained.save() var theNun = new movieClass({movieName : "The Nun", director: "Corin Hardy", imdbRating: 6, cast: ["Taissa Farmiga", "Demián Bichir"], releaseDate: new Date('2018-09-04'), genre: "supernatural horror", sequel: false}) console.log('DB Updated'); theNun.save()

7. BACA (Sinkron)

Setelah kami membuat dokumen, sekarang kami dapat memfilternya berdasarkan kondisi khusus dan mengekstrak dokumen tertentu dari MongoDB

Demi singkatnya, saya telah membuat beberapa fungsi menggunakan

  1. Ambil data dengan menggunakan pengidentifikasi unik
  2. Ambil data dengan menggunakan operator pembanding seperti ( >, ≥,

Postingan terbaru

LIHAT SEMUA