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
महत्त्वपूर्ण: अद्यावधिकहरूले operators ($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
);
Insert, update, र delete अपरेशनहरू कसरी अनुप्रयोगहरूले MongoDB मा डेटा परिमार्जन गर्छन्, कुनै पनि डेटा-संचालित अनुप्रयोगको लागि मौलिक, त्यसैले तिनलाई बुझ्नु अत्यावश्यक दैनिक ज्ञान हो।
विधिहरू जान्नु (insertOne/insertMany सृजनको लागि, updateOne/updateMany परिमार्जनको लागि, deleteOne/deleteMany हटाउनको लागि) आधार समेट गर्छ।
सबैभन्दा महत्त्वपूर्ण र सामान्यतया गलत बुझिने बिन्दु यो हो कि MongoDB अद्यावधिकहरूले update operators ($set, $inc, $push, $pull, आदि) प्रयोग गर्छन् विशिष्ट क्षेत्रहरू परिमार्जन गर्नको लागि — र महत्त्वपूर्ण रूपमा, अपरेटर बिर्सने सम्पूर्ण कागजात प्रतिस्थापन गर्छ (एक कुख्यात समस्या जहाँ updateOne({...}, {age: 31}) अन्य सबै क्षेत्रहरू मेटाउँछ, केवल age छोडिन्छ), त्यसैले सधैँ $set प्रयोग गर्नु (र अन्य अपरेटरहरू) क्षेत्र-स्तरीय अद्यावधिकको लागि बुझ्नु शुद्धताको लागि अत्यावश्यक छ।
सामान्य अपरेटरहरू जान्नु ($set, $inc काउन्टरको लागि, $push/$pull/$addToSet arrays को लागि — array operators विशेष रूपमा प्रासंगिक दिइएको MongoDB को array-समृद्ध कागजातहरू) महत्त्वपूर्ण दैनिक ज्ञान हो।
Upsert बुझ्नु ({ upsert: true } — यदि कुनै मेल छैन भने घुसाउनुहोस्, MongoDB को insert-or-update) सामान्य insert-or-update प्याटर्नको लागि मूल्यवान छ।
deleteMany({}) को खतरा पनि उल्लेखनीय छ (सबै कुरा हटाउनु — SQL मा हराइरहेको WHERE समान)।
डेटा परिमार्जन गर्नु मौलिक भएको कारण, र MongoDB को operator-आधारित अद्यावधिकहरू (कागजात-प्रतिस्थापन समस्या सहित), array अपरेटरहरू, र upsert कसरी तपाई सही रूपमा डेटा परिवर्तन गर्छ भन्नेकारण, insert/update/delete बुझ्नु — विशेष गरी गंभीर update-operator भेद (अनुपलब्ध कागजात प्रतिस्थापन रोक्नु) — MongoDB विकास मा कुनै पनि लागिको लागि अत्यावश्यक, अवश्य-जान्नु ज्ञान हो, जहाँ अपरेटर समस्या विशेष गरी वास्तविक बगहरूको एक बारम्बार स्रोत हो।