Panduan Lengkap Mengenai Pembaruan MongoDB Dalam Node.js Bagi Pemula

Hai teman-teman, para pemrogram masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia pembaruan MongoDB menggunakan Node.js. Saya ingat saat pertama kali saya mulai mengajar topik ini, saya melihat campuran kegembiraan dan kebingungan di wajah murid-murid saya. Tetapi jangan khawatir, pada akhir tutorial ini, Anda akan dapat memperbarui dokumen MongoDB seperti seorang ahli!

Node.js - MongoDB Update

Memahami Pembaruan MongoDB

Sebelum kita masuk ke metode khusus, mari kitaambil sedikit waktu untuk memahami apa artinya pembaruan dalam MongoDB. Bayangkan Anda memiliki buku digital (itu adalah database kita) yang penuh dengan halaman informasi (dokumen kita). Kadang-kadang, Anda perlu mengubah apa yang tertulis di halaman itu. Itu tepatnya apa yang dilakukan pembaruan di MongoDB - itu memungkinkan kita untuk memodifikasi dokumen yang sudah ada di koleksinya.

Metode Pembaruan

MongoDB menyediakan dua metode utama untuk pembaruan dokumen:

Metode Deskripsi
updateOne() Memperbarui satu dokumen yang cocok dengan filter
updateMany() Memperbarui banyak dokumen yang cocok dengan filter

Sekarang, mari kita jelajahi masing-masing metode ini secara detil.

updateOne(): Pembaruan Presisi

Metode updateOne() mirip dengan ahli bedah yang presisi, memodifikasi satu dokumen saja pada satu waktu. Ini sangat cocok saat Anda tahu tepat dokumen mana yang hendak Anda ubah.

Syntax

db.collection.updateOne(filter, update, options)

Bongkar ini:

  • filter: Menentukan dokumen mana yang hendak dimperbarui
  • update: Menentukan modifikasi yang hendak diterapkan
  • options: Parameter opsional untuk mengendalikan operasi pembaruan

Contoh 1: Memperbarui Field Tunggal

Bayangkan kita memiliki koleksi buku, dan kita ingin memperbarui harga buku "The Great Gatsby". Berikut cara untuk melakukan itu:

const { MongoClient } = require('mongodb');

async function updateBookPrice() {
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

try {
await client.connect();
const database = client.db("bookstore");
const books = database.collection("books");

const filter = { title: "The Great Gatsby" };
const updateDoc = {
$set: {
price: 15.99
},
};

const result = await books.updateOne(filter, updateDoc);
console.log(`Updated ${result.modifiedCount} document`);
} finally {
await client.close();
}
}

updateBookPrice();

Dalam contoh ini, kita menggunakan operator $set untuk memperbarui harga. Operator $set mengganti nilai field dengan nilai yang ditentukan.

Contoh 2: Menambah Field Baru

Sekarang, katakanlah kita ingin menambah field "lastUpdated" ke dokumen buku kita:

const filter = { title: "The Great Gatsby" };
const updateDoc = {
$set: {
lastUpdated: new Date()
},
};

const result = await books.updateOne(filter, updateDoc);

Ini akan menambah field "lastUpdated" dengan tanggal dan waktu saat ini ke dokumen kita.

updateMany(): Pembaruan Massal

Kadang-kadang, Anda perlu memperbarui banyak dokumen sekaligus. Itu di mana updateMany() berguna. Itu seperti guru yang meng nilai semua ujian sekaligus, bukan satu per satu.

Syntax

db.collection.updateMany(filter, update, options)

Parameternya sama seperti updateOne(), tetapi metode ini akan memperbarui semua dokumen yang cocok dengan filter.

Contoh 3: Memperbarui Banyak Dokumen

Katakanlah kita ingin memberikan diskon 10% ke semua buku dengan harga di atas $20:

async function applyDiscount() {
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

try {
await client.connect();
const database = client.db("bookstore");
const books = database.collection("books");

const filter = { price: { $gt: 20 } };
const updateDoc = {
$mul: {
price: 0.9
},
};

const result = await books.updateMany(filter, updateDoc);
console.log(`Updated ${result.modifiedCount} documents`);
} finally {
await client.close();
}
}

applyDiscount();

Dalam contoh ini, kita menggunakan operator $mul untuk mengalikan harga dengan 0.9 (menerapkan diskon 10%). Operator $gt dalam filter memilih semua dokumen di mana harga lebih besar dari 20.

Operator Pembaruan

MongoDB menyediakan berbagai operator pembaruan yang memungkinkan kita melakukan pembaruan kompleks. Berikut adalah beberapa yang paling umum digunakan:

Operator Deskripsi
$set Mengatur nilai field
$inc Menambahkan nilai field sejumlah tertentu
$mul Mengalikan nilai field dengan nilai tertentu
$rename Mengubah nama field
$unset Menghapus field dari dokumen
$min Memperbarui field jika nilai yang ditentukan lebih kecil dari nilai field yang ada
$max Memperbarui field jika nilai yang ditentukan lebih besar dari nilai field yang ada

Contoh 4: Menggunakan Beberapa Operator

Bertujuan menggunakan beberapa operator dalam satu operasi pembaruan:

const filter = { title: "The Great Gatsby" };
const updateDoc = {
$set: { author: "F. Scott Fitzgerald" },
$inc: { copiesSold: 1000 },
$rename: { "publishYear": "yearPublished" }
};

const result = await books.updateOne(filter, updateDoc);

Operasi pembaruan ini mengatur penulis, menambahkan nilai ke copiesSold sejumlah 1000, dan mengubah nama field "publishYear" menjadi "yearPublished".

Kesimpulan

Dan begitu punya, teman-teman! Kita telah menjelajahi negeri pembaruan MongoDB, mengenal updateOne() dan updateMany() serta bermain dengan berbagai operator pembaruan. Ingat, latihan membuatahli, jadi jangan takut untuk mencoba metode ini di proyek Anda sendiri.

Saya selalu katakan kepada murid-murid saya bahwa belajar operasi database seperti belajar memasak - awalnya mungkin terlihat sulit, tetapi setelah Anda menguasai tekniknya, Anda akan membuat query kompleks seperti chef yang membuat makanan khusus!

Tetap kode, tetap belajar, dan terutama, bersenang-senang dengannya! Sampai jumpa lagi, selamat pembaruan!

Credits: Image by storyset