MongoDB hurekebisha data kwa mbinu za (/), (/ na waendeshaji), na (/). Usasishaji hutumia badala ya kubadilisha nyaraka nzima — tofauti muhimu.
MongoDB hurekebisha data kwa mbinu za (/), (/ na waendeshaji), na (/). Usasishaji hutumia badala ya kubadilisha nyaraka nzima — tofauti muhimu.
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
Muhimu: usasishaji hutumia waendeshaji ($set, $inc, $push, n.k.) kurekebisha sehemu mahususi. Bila waendeshaji, ungekuwa unabadilisha nyaraka nzima — shida ya kawaida:
// ❌ 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
);
Operesheni za kuingiza, kusasisha, na kufuta ndizo jinsi programu zinavyorekebisha data katika MongoDB, za msingi kwa programu yoyote inayotegemea data, kwa hivyo kuzielewa ni maarifa muhimu ya kila siku.
Kujua mbinu (insertOne/insertMany kwa kuunda, updateOne/updateMany kwa kurekebisha, deleteOne/deleteMany kwa kuondoa) hujumuisha misingi.
Jambo muhimu zaidi na linalokosewa mara kwa mara ni kwamba usasishaji wa MongoDB hutumia waendeshaji wa usasishaji ($set, $inc, $push, $pull, n.k.) kurekebisha sehemu mahususi — na kwa muhimu, kusahau waendeshaji hubadilisha nyaraka nzima (shida maarufu ambapo updateOne({...}, {age: 31}) hufuta sehemu zingine zote, ikiacha tu age), kwa hivyo kuelewa kutumia $set kila wakati (na waendeshaji wengine) kwa usasishaji wa kiwango cha sehemu ni muhimu kwa usahihi.
Kujua waendeshaji wa kawaida ($set, $inc kwa vihesabio, $push/$pull/$addToSet kwa safu — waendeshaji wa safu wakiwa muhimu hasa kutokana na nyaraka za MongoDB zilizojaa safu) ni maarifa muhimu ya kila siku.
Kuelewa upsert ({ upsert: true } — ingiza kama hakuna inayolingana, kuingiza-au-kusasisha kwa MongoDB) ni muhimu kwa muundo wa kawaida wa kuingiza-au-kusasisha.
Pia inafaa kuzingatiwa ni hatari ya deleteMany({}) (kufuta kila kitu — sawa na hatari ya WHERE inayokosekana katika SQL).
Kwa kuwa kurekebisha data ni jambo la msingi, na kwa kuwa usasishaji wa MongoDB unaotegemea waendeshaji (na shida ya kubadilisha nyaraka), waendeshaji wa safu, na upsert ndizo jinsi unavyobadilisha data kwa usahihi, kuelewa kuingiza/kusasisha/kufuta — hasa tofauti muhimu ya waendeshaji wa usasishaji (kuepuka kubadilisha nyaraka bila kukusudia) — ni maarifa muhimu, ya lazima kujua kwa usanidi wowote wa MongoDB, ambapo shida ya waendeshaji hasa ni chanzo cha mara kwa mara cha hitilafu halisi.