Node.js - MongoDB Update: Panduan Komprehensif untuk Pemula
Halo sana, para pemrogram masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia pembaruan MongoDB menggunakan Node.js. Saya ingat saat pertama saya mulai mengajarkan topik ini, saya melihat campuran kegembiraan dan kebingungan di wajah murid-murid saya. Tetapi jangan khawatir, pada akhir panduan ini, Anda akan dapat memperbarui dokumen MongoDB seperti seorang ahli!
Mengenal Pembaruan MongoDB
Sebelum kita masuk ke metode khusus, mari kitaambil sedikit waktu untuk memahami apa artinya pembaruan di MongoDB. Bayangkan Anda memiliki buku digital (itu adalah basis data kita) yang penuh dengan halaman informasi (dokumen kita). Kadang-kadang, Anda perlu mengubah apa yang tertulis di halaman ini. Itu tepat apa yang dilakukan pembaruan di MongoDB - ini memungkinkan kita untuk memodifikasi dokumen yang sudah ada dalam koleksi kita.
Metode Pembaruan
MongoDB menyediakan dua metode utama untuk pembaruan dokumen:
Metode | Deskripsi |
---|---|
updateOne() | Memperbarui satu dokumen yang cocok dengan filter |
updateMany() | Memperbarui beberapa dokumen yang cocok dengan filter |
Sekarang, mari kita jelajahi setiap metode ini secara rinci.
updateOne(): Pembaruan Presisi
Metode updateOne()
adalah seperti seorang ahli bedah presisi, memodifikasi satu dokumen saja pada saat yang sama. Ini sangat cocok saat Anda tahu tepat dokumen mana yang ingin Anda ubah.
Sintaks
db.collection.updateOne(filter, update, options)
mari kitauraikan ini:
-
filter
: Menentukan dokumen mana yang akan diperbarui -
update
: Menentukan modifikasi yang akan diterapkan -
options
: Parameter opsional untuk mengontrol operasi pembaruan
Contoh 1: Memperbarui Satu Field
Bayangkan kita memiliki koleksi buku, dan kita ingin memperbarui harga buku "The Great Gatsby". Ini adalah cara kita melakukannya:
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, mari kita katakan 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 beberapa dokumen sekaligus. Itu di mana updateMany()
berguna. Ini seperti seorang guru yang meng nilai semua ujian sekaligus, bukan satu per satu.
Sintaks
db.collection.updateMany(filter, update, options)
Parameternya sama seperti updateOne()
, tetapi metode ini akan memperbarui semua dokumen yang cocok dengan filter.
Contoh 3: Memperbarui Beberapa Dokumen
Bayangkan 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 dimana harga lebih besar dari 20.
Operator Pembaruan
MongoDB menyediakan berbagai operator pembaruan yang memungkinkan kita untuk melakukan pembaruan yang kompleks. Berikut adalah beberapa yang paling umum digunakan:
Operator | Deskripsi |
---|---|
$set | Mengatur nilai field |
$inc | Menambahkan nilai field dengan jumlah yang ditentukan |
$mul | Mengalikan nilai field dengan jumlah yang ditentukan |
$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
mari kita gunakan 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 copiesSold
sebanyak 1000, dan mengubah nama field "publishYear" menjadi "yearPublished".
Kesimpulan
Dan begitu punya nya, teman-teman! Kita telah berpergian melalui negeri pembaruan MongoDB, mengunjungi updateOne()
dan updateMany()
serta bermain dengan berbagai operator pembaruan. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba metode ini dalam proyek Anda sendiri.
Saya selalu katakan kepada murid-murid saya bahwa belajar operasi basis data adalah seperti belajar memasak - awalnya, mungkin terlihat sulit, tetapi sekali Anda mendapat kesan, Anda akan membuat query kompleks seperti seorang chef master membuat makanan lezat!
Tetap kode, tetap belajar, dan terutama, bersenang-senang dengan itu! Sampai jumpa lagi, selamat pembaruan!
Credits: Image by storyset