MongoDB ڈیٹا میں ترمیم (/)، (/ operators کے ساتھ)، اور (/) methods کے ذریعے کرتا ہے۔ Updates پورے documents کو بدلنے کے بجائے استعمال کرتی ہیں — یہ ایک اہم فرق ہے۔
MongoDB ڈیٹا میں ترمیم (/)، (/ operators کے ساتھ)، اور (/) methods کے ذریعے کرتا ہے۔ Updates پورے documents کو بدلنے کے بجائے استعمال کرتی ہیں — یہ ایک اہم فرق ہے۔
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
اہم: updates مخصوص fields میں ترمیم کے لیے operators ($set, $inc, $push وغیرہ) استعمال کرتی ہیں۔ operator کے بغیر آپ پورا document بدل دیں گے — ایک عام غلطی:
// ❌ 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
);
Insert، update، اور delete operations وہ طریقے ہیں جن سے applications MongoDB میں ڈیٹا میں ترمیم کرتی ہیں، جو کسی بھی ڈیٹا پر مبنی application کے لیے بنیادی ہیں، اس لیے ان کو سمجھنا ناگزیر روزمرہ کا علم ہے۔
Methods کو جاننا (بنانے کے لیے insertOne/insertMany، ترمیم کے لیے updateOne/updateMany، ہٹانے کے لیے deleteOne/deleteMany) بنیادی باتوں کا احاطہ کرتا ہے۔
سب سے اہم اور عام طور پر غلط سمجھا جانے والا نکتہ یہ ہے کہ MongoDB updates مخصوص fields میں ترمیم کے لیے update operators ($set, $inc, $push, $pull وغیرہ) استعمال کرتی ہیں — اور خاص طور پر، operator بھول جانا پورا document بدل دیتا ہے (ایک بدنام غلطی جہاں updateOne({...}, {age: 31}) باقی تمام fields مٹا کر صرف age چھوڑ دیتا ہے)، اس لیے درستی کے لیے field-سطح کی updates کے واسطے ہمیشہ $set (اور دیگر operators) استعمال کرنا ضروری ہے۔
عام operators کو جاننا ($set, counters کے لیے $inc, arrays کے لیے $push/$pull/$addToSet — MongoDB کے array سے بھرپور documents کے پیشِ نظر array operators خاص طور پر متعلقہ ہیں) اہم روزمرہ کا علم ہے۔
Upsert کو سمجھنا ({ upsert: true } — match نہ ملنے پر insert کریں، MongoDB کا insert-یا-update) عام insert-یا-update pattern کے لیے قیمتی ہے۔
deleteMany({}) کے خطرے کو نوٹ کرنا بھی اہم ہے (سب کچھ delete کر دینا — SQL میں WHERE نہ ہونے کے خطرے کی طرح)۔
چونکہ ڈیٹا میں ترمیم کرنا بنیادی ہے، اور چونکہ MongoDB کی operator پر مبنی updates (document بدلنے کی غلطی کے ساتھ)، array operators، اور upsert وہ طریقے ہیں جن سے آپ درست طور پر ڈیٹا تبدیل کرتے ہیں، اس لیے insert/update/delete کو سمجھنا — بالخصوص نازک update-operator فرق (حادثاتی document بدلنے سے بچنا) — کسی بھی MongoDB development کے لیے ناگزیر، لازمی علم ہے، جہاں operator کی غلطی خاص طور پر حقیقی bugs کا بار بار ذریعہ بنتی ہے۔