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!
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