Farih.co.id
Home Programming Cara Menggunakan Mongoose di Aplikasi Express

Cara Menggunakan Mongoose di Aplikasi Express

Mongo Database Transactions Cover

Mengelola data dalam database MongoDB dapat menjadi tantangan, terutama ketika berhadapan dengan model data yang kompleks. MongoDB adalah basis data tanpa skema, artinya data dapat ditambahkan tanpa mengikuti struktur tertentu. Fleksibilitas ini membuat MongoDB ideal untuk menyimpan data dalam jumlah besar tetapi juga membuat pengelolaan data menjadi lebih sulit.


Mongoose menyediakan solusi berbasis skema yang membantu memastikan bahwa data yang disimpan ke MongoDB konsisten dan diformat dengan benar. Dengan Mongoose, Anda dapat menentukan skema untuk model data Anda, yang menentukan struktur data dan aturan bagaimana data tersebut harus diformat. Di sini Anda akan menjelajahi cara menggunakan Mongoose di aplikasi Express.


Menyiapkan Lingkungan Pengembangan Anda

Sebelum menggunakan Mongoose, Anda harus menginstalnya sebagai dependensi di proyek Anda.

Anda dapat menginstal Mongoose dengan menjalankan perintah di bawah ini:

 npm install mongoose

Setelah Anda menginstal Mongoose di proyek Anda, Anda perlu menghubungkan aplikasi Anda ke MongoDB menggunakan Mongoose.

Mongoose terhubung ke Database MongoDB menggunakan Menghubung metode, yang menggunakan URI MongoDB sebagai argumen.

Berikut contohnya:

 
const mongoose = require("mongoose")

mongoose.connect("mongodb://127.0.0.1:27017/example", () =>
  console.log("Connected to database successfully")
);

Blok kode di atas terhubung ke instance MongoDB lokal dan mencatat pesan sukses saat aplikasi Anda berhasil terhubung ke MongoDB.

Membuat Model Mongoose

Model Mongoose adalah kelas berbasis skema di Mongoose yang memungkinkan Anda berinteraksi dengan koleksi MongoDB.

Skema Mongoose menentukan struktur dokumen yang dapat Anda simpan dalam koleksi MongoDB dan menyediakan antarmuka untuk membuat, membaca, memperbarui, dan menghapus dokumen dalam koleksi tersebut.

Saat Anda menentukan model Mongoose, Anda menentukan skema untuk dokumen dalam koleksi tersebut, termasuk properti, tipenya, dan validasi apa pun.

Berikut adalah contoh model Mongoose untuk a Pengguna koleksi:

 const mongoose = require("mongoose");

const userSchema = mongoose.Schema({
  name: {
    type: String,
    required: [true, "Name is required"],
  },
  email: {
    type: String,
    required: true,
  },
  age: {
    type: Number,
    validate: {
      validator: function (value) {
        return value > 0;
      },
      message: () => "Please enter a valid age",
    },
  },
});

const User = mongoose.model("User", userSchema);

module.exports = User;

Blok kode di atas mendefinisikan skema Mongoose dengan tiga properti: nama, surelDan usia. Setiap properti memiliki kumpulan aturan yang ditentukan yang harus Anda ikuti saat memetakan nilai ke bidang yang ditentukan. Berikut rincian aturannya:

  • nama: The nama properti adalah a rangkaian jenis ditandai sebagai diperlukan, artinya Anda harus memetakan string ke bidang ini. Jika Anda membiarkan bidang kosong atau memasukkan tipe data JavaScript yang berbeda, Mongoose melontarkan kesalahan.
  • surel: The surel properti adalah a rangkaian jenis ditandai sebagai diperlukan. Tidak ada aturan validasi lain, tetapi dalam praktiknya, Anda harus memvalidasi jika emailnya benar. Anda dapat memvalidasi email menggunakan ekspresi regex atau pustaka pihak ketiga, seperti class-validator.
  • usia: The usia properti adalah a nomor ketik dengan aturan validasi khusus yang memeriksa apakah nilai yang dipetakan ke bidang lebih besar dari nol. Jika nilainya tidak lolos validasi, Mongoose akan melontarkan kesalahan dengan pesan tersebut Masukkan usia yang valid. Anda dapat mengosongkan bidang ini karena tidak ditandai sebagai diperlukan.

Setelah mendefinisikan skema, blok kode membuat model Mongoose yang disebut Pengguna menggunakan luwak.model() metode. Metode ini membutuhkan dua argumen: nama model dan skema yang digunakan untuk dokumen.

Akhirnya, Pengguna model diekspor ke bagian lain dari aplikasi Anda.

Berinteraksi Dengan MongoDB Menggunakan Mongoose

Dengan aplikasi Anda terhubung ke database MongoDB dan model Anda dibuat dan dapat diakses ke bagian lain dari aplikasi Anda, Anda dapat berinteraksi dengan database Anda menggunakan metode yang disediakan oleh Mongoose.

Untuk tutorial ini, Anda akan melakukan operasi CRUD pada database MongoDB.

Catatan: Pastikan untuk mengimpor model Mongoose Anda ke modul mana pun tempat Anda akan melakukan operasi CRUD.

Misalnya:

 

const User = require("./userModel")

Membuat Dokumen

Dokumen adalah turunan dari model. Ada beberapa cara untuk membuat dan menyimpan dokumen ke MongoDB menggunakan Mongoose.

Pertama, Anda dapat membuat instance dari kelas model Anda dan kemudian memanggil menyimpan metode di atasnya.

Misalnya:

 
let user = new User({
  name,
  email,
  age,
});


user
  .save()
  .then(() => {
    console.log("User created successfully");
  })
  .catch((error) => {
    
  });

Blok kode di atas membuat dan menyimpan yang baru Pengguna dokumen ke database MongoDB Anda.

Anda juga dapat menyimpan data ke database Anda menggunakan membuat metode. Itu membuat method instantiates model Anda dan memanggil menyimpan metode di atasnya. Dengan kata lain, ini menggabungkan dua operasi dari teknik yang disebutkan sebelumnya.

Misalnya:

 User.create({ name, email, age }, (err, data) => {
    if (err) throw new Error("Internal Server Error");

    console.log(`User created successfully: ${data}`);
  });

Blok kode di atas membuat yang baru Pengguna dokumen dengan properti yang diteruskan sebagai argumen ke membuat metode.

Atau, Anda dapat menyimpan data ke database Anda menggunakan insertMany metode. Meskipun metode ini hanya ideal untuk menyimpan data secara berkelompok.

Misalnya:

 User.insertMany(
    [
      { name, email, age },
      { name_1, email_1, age_1 },
    ],
    (err, result) => {
      if (err) {
        
      } else {
        
      }
    }
  );

Blok kode di atas membuat dua dokumen baru di Pengguna koleksi menggunakan array yang diteruskan sebagai argumen ke insertMany metode.

Membaca Dokumen

Anda dapat mengakses semua dokumen yang disimpan di database MongoDB Anda menggunakan Mongoose menemukan metode.

Misalnya:

 User.find({})
  .then((data) => {
    console.log(data);
  })
  .catch((err) => {
    
  });

Blok kode di atas akan mengembalikan semua dokumen di Pengguna koleksi.

Anda juga dapat menemukan semua dokumen yang cocok dengan kueri tertentu dengan meneruskan kueri ke metode find.

Misalnya:

 
User.find({ age: { $gte: 18 } })
  .then((data) => console.log(data))
  .catch((error) => console.log(error));

Blok kode di atas akan mengembalikan semua dokumen dengan nilai usia lebih dari 18 tahun Pengguna koleksi.

Atau, Anda dapat membaca catatan tunggal menggunakan findById metode dan meneruskan ID dokumen sebagai argumen atau menggunakan findOne metode dan melewati filter sebagai argumen.

Misalnya:

 
User.findById(id, (error, result) => {
    if (result) console.log(result);
    if (error) console.error(error)
  });


User.findOne({ email: "johnson@example.com" }).then((user) => {
    if (!user) {
      
    }
    
  });

Dalam blok kode di atas, file findById metode mengembalikan dokumen dengan ID yang cocok. Itu findOne metode mengembalikan dokumen pertama yang memiliki email johnson@example.com.

Memperbarui Dokumen

Anda dapat memperbarui dokumen di MongoDB dengan Mongoose menggunakan findByIdAndUpdate metode. Metode ini mengambil ID dan objek dengan detail yang diperbarui.

Misalnya:

 User.findByIdAndUpdate(id, req.body, (err, doc) => {
  if (doc) {
    
  }
  if (err) {
    
  }
});

Blok kode di atas memperbarui dokumen yang memiliki ID yang cocok dengan ID yang diberikan dengan objek pembaruan yang disediakan (req.body).

Menghapus Dokumen

Anda dapat menghapus dokumen di MongoDB dengan Mongoose menggunakan findByIdAndDelete metode. Metode ini menggunakan ID sebagai argumen dan menghapus dokumen dengan ID yang sesuai.

Misalnya:

 User.findByIdAndDelete(id, (error, result) => {
  if (result) {
    
  }
  if (error) {
    
  }
});

Blok kode di atas menghapus dokumen dengan ID yang diberikan dari database MongoDB Anda.

Menggunakan Mongoose di Aplikasi Ekspres Anda

Artikel ini memberikan ikhtisar tentang bagaimana Anda dapat menggunakan Mongoose di aplikasi ekspres Anda. Meliputi bagaimana Anda dapat membuat koneksi ke MongoDB, menyusun dan memvalidasi data yang disimpan ke database MongoDB Anda, dan melakukan operasi CRUD sederhana.

Dengan menggunakan Mongoose di aplikasi Express Anda, Anda dapat menyederhanakan dan merampingkan interaksi antara aplikasi Anda dan database MongoDB.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad