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!

Node.js - MongoDB Update

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