MongoDB memodifikasi data dengan metode (/), (/ dengan operator), dan (/). Update menggunakan daripada mengganti seluruh dokumen — sebuah perbedaan penting.
MongoDB memodifikasi data dengan metode (/), (/ dengan operator), dan (/). Update menggunakan daripada mengganti seluruh dokumen — sebuah perbedaan penting.
insertOneinsertManyupdateOneupdateManydeleteOnedeleteManydb.users.insertOne({ name: "Ann", age: 30 }); // → returns the inserted _id
db.users.insertMany([{ name: "Bob" }, { name: "Carol" }]); // bulk insert (efficient)
// updateOne — filter (which doc) + update (with OPERATORS)
db.users.updateOne(
{ name: "Ann" },
{ $set: { age: 31, status: "active" } } // $set: change specific fields
);
// common update operators
{ $set: { field: value } } // set/change a field
{ $unset: { field: "" } } // remove a field
{ $inc: { count: 1 } } // increment a number
{ $push: { tags: "new" } } // add to an array
{ $pull: { tags: "old" } } // remove from an array
{ $addToSet: { tags: "x" } } // add to array only if not present
db.users.updateMany({ active: false }, { $set: { archived: true } }); // update all matching
Penting: update menggunakan operator ($set, $inc, $push, dll.) untuk memodifikasi field spesifik. Tanpa operator, Anda akan mengganti seluruh dokumen — sebuah kesalahan umum:
// ❌ this REPLACES the whole document (loses other fields!)
db.users.updateOne({ name: "Ann" }, { age: 31 }); // Ann now has ONLY age!
// ✅ use $set to change just the field
db.users.updateOne({ name: "Ann" }, { $set: { age: 31 } });
db.users.deleteOne({ name: "Ann" }); // delete the first match
db.users.deleteMany({ active: false }); // delete all matching
db.users.deleteMany({}); // ⚠️ deletes ALL documents!
db.users.updateOne(
{ email: "[email protected]" },
{ $set: { name: "Ann" } },
{ upsert: true } // if no match, INSERT a new document
);
Operasi insert, update, dan delete adalah cara aplikasi memodifikasi data di MongoDB, fundamental untuk aplikasi berbasis data apa pun, jadi memahaminya adalah pengetahuan sehari-hari yang esensial.
Mengetahui metode (insertOne/insertMany untuk membuat, updateOne/updateMany untuk memodifikasi, deleteOne/deleteMany untuk menghapus) mencakup dasar-dasarnya.
Poin paling penting dan yang sering salah paham adalah bahwa update MongoDB menggunakan update operator ($set, $inc, $push, $pull, dll.) untuk memodifikasi field spesifik — dan yang krusial, melupakan operator akan mengganti seluruh dokumen (sebuah jebakan terkenal di mana updateOne({...}, {age: 31}) menghapus semua field lain, hanya meninggalkan age), jadi memahami untuk selalu menggunakan $set (dan operator lainnya) untuk update tingkat field sangat penting untuk kebenaran.
Mengetahui operator umum ($set, $inc untuk counter, $push/$pull/$addToSet untuk array — operator array sangat relevan mengingat dokumen MongoDB yang kaya array) adalah pengetahuan sehari-hari yang penting.
Memahami upsert ({ upsert: true } — sisipkan jika tidak ada kecocokan, pola insert-atau-update MongoDB) sangat berharga untuk pola insert-atau-update yang umum.
Juga patut diketahui adalah bahaya deleteMany({}) (menghapus semuanya — serupa dengan bahaya WHERE yang hilang di SQL).
Karena memodifikasi data adalah fundamental, dan karena update berbasis operator MongoDB (dengan jebakan penggantian dokumen), operator array, dan upsert adalah cara Anda dengan benar mengubah data, memahami insert/update/delete — terutama perbedaan operator-update yang kritis (menghindari penggantian dokumen yang tidak disengaja) — adalah pengetahuan esensial yang wajib diketahui untuk pengembangan MongoDB apa pun, di mana jebakan operator khususnya adalah sumber bug nyata yang sering terjadi.