MongoDB ডেটা সংশোধন করে (/), (/ সহ অপারেটর), এবং (/) পদ্ধতি ব্যবহার করে। আপডেটগুলি সম্পূর্ণ নথি প্রতিস্থাপনের পরিবর্তে ব্যবহার করে — এটি একটি গুরুত্বপূর্ণ পার্থক্য।
MongoDB ডেটা সংশোধন করে (/), (/ সহ অপারেটর), এবং (/) পদ্ধতি ব্যবহার করে। আপডেটগুলি সম্পূর্ণ নথি প্রতিস্থাপনের পরিবর্তে ব্যবহার করে — এটি একটি গুরুত্বপূর্ণ পার্থক্য।
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
গুরুত্বপূর্ণ: আপডেটগুলি অপারেটর ($set, $inc, $push, ইত্যাদি) ব্যবহার করে নির্দিষ্ট ফিল্ড সংশোধন করে। অপারেটর ছাড়া, আপনি সম্পূর্ণ নথি প্রতিস্থাপন করবেন — একটি সাধারণ ত্রুটি:
// ❌ 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
);
ইনসার্ট, আপডেট, এবং ডিলিট অপারেশন হল কীভাবে অ্যাপ্লিকেশনগুলি MongoDB-তে ডেটা সংশোধন করে, যা যেকোনো ডেটা-চালিত অ্যাপ্লিকেশনের জন্য মৌলিক, তাই এগুলি বোঝা অপরিহার্য দৈনন্দিন জ্ঞান।
পদ্ধতিগুলি জানা (insertOne/insertMany তৈরির জন্য, updateOne/updateMany সংশোধনের জন্য, deleteOne/deleteMany সরানোর জন্য) মূল বিষয়গুলি কভার করে।
সবচেয়ে গুরুত্বপূর্ণ এবং সাধারণভাবে ভুল বোঝা যায় এমন পয়েন্ট হল MongoDB আপডেটগুলি আপডেট অপারেটর ($set, $inc, $push, $pull, ইত্যাদি) ব্যবহার করে নির্দিষ্ট ফিল্ড সংশোধন করতে — এবং গুরুত্বপূর্ণভাবে, অপারেটর ভুলে গেলে সম্পূর্ণ নথি প্রতিস্থাপন হয় (একটি কুখ্যাত ত্রুটি যেখানে updateOne({...}, {age: 31}) অন্যান্য সমস্ত ফিল্ড মুছে ফেলে, শুধুমাত্র age অবশিষ্ট রেখে যায়), তাই ফিল্ড-স্তরের আপডেটগুলির জন্য সর্বদা $set (এবং অন্যান্য অপারেটর) ব্যবহার করা বুঝতে পারা সঠিকতার জন্য অপরিহার্য।
সাধারণ অপারেটরগুলি জানা ($set, $inc কাউন্টারের জন্য, $push/$pull/$addToSet arrays-এর জন্য — MongoDB-র array-সমৃদ্ধ নথি দেওয়া বিশেষভাবে প্রাসঙ্গিক array অপারেটর) দৈনন্দিন গুরুত্বপূর্ণ জ্ঞান।
Upsert বোঝা ({ upsert: true } — যদি মেলে না পাওয়া যায় তবে সন্নিবেশ করুন, MongoDB-র insert-or-update) সাধারণ insert-or-update প্যাটার্নের জন্য মূল্যবান।
এছাড়াও উল্লেখযোগ্য হল deleteMany({})-র বিপদ (সবকিছু মুছে ফেলা — SQL-এ মিসিং-WHERE বিপদের অনুরূপ)।
ডেটা সংশোধন মৌলিক হওয়ার পরে, এবং MongoDB-র অপারেটর-ভিত্তিক আপডেটগুলি (নথি-প্রতিস্থাপন ত্রুটির সাথে), array অপারেটর, এবং upsert কীভাবে আপনি সঠিকভাবে ডেটা পরিবর্তন করেন তার কারণে, insert/update/delete বোঝা — বিশেষ করে সমালোচনামূলক আপডেট-অপারেটর পার্থক্য (দুর্ঘটনাজনক নথি প্রতিস্থাপন এড়ানো) — যেকোনো MongoDB উন্নয়নের জন্য অপরিহার্য, অবশ্য-জানা জ্ঞান, যেখানে অপারেটর ত্রুটি বিশেষ করে বাস্তব বাগের একটি ঘন ঘন উৎস।