MongoDB modifikon të dhënat me metodat (/), (/ me operatorë), dhe (/). Përditësimet përdorin në vend të zëvendësimit të dokumenteve të tërë — një dallim i rëndësishëm.
MongoDB modifikon të dhënat me metodat (/), (/ me operatorë), dhe (/). Përditësimet përdorin në vend të zëvendësimit të dokumenteve të tërë — një dallim i rëndësishëm.
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
E rëndësishme: përditësimet përdorin operatorë ($set, $inc, $push, etj.) për të modifikuar fushat specifike. Pa një operator, do të zëvendësonit dokumentin e tërë — një grackë e zakonshme:
// ❌ 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
);
Operacionet insert, update dhe delete janë mënyra se si aplikacionet modifikojnë të dhënat në MongoDB, themelore për çdo aplikacion të bazuar në të dhëna, kështu që kuptimi i tyre është njohuri thelbësore e përditshme.
Përdorja e metodave (insertOne/insertMany për krijimin, updateOne/updateMany për modifikimin, deleteOne/deleteMany për heqjen) mbulon bazat.
Pika më e rëndësishme dhe më shpesh e keqkuptuar është se përditësimet në MongoDB përdorin operatorë përditësimi ($set, $inc, $push, $pull, etj.) për të modifikuar fushat specifike — dhe më thelbësorja, harresa e operatorit zëvendëson dokumentin e tërë (një grackë e përhapur ku updateOne({...}, {age: 31}) fsheh të gjitha fushat e tjera, duke lënë vetëm age), kështu që të kuptosh të përdorësh gjithmonë $set (dhe operatorë të tjerë) për përditësimet në nivelin e fushës është thelbësor për korrektësinë.
Përdorja e operatorëve të zakonshëm ($set, $inc për numëratorë, $push/$pull/$addToSet për vargje — operatorë vargu që janë veçanërisht të rëndësishëm duke pasur parasysh dokumentet e pasura me vargje të MongoDB-it) është njohuri e rëndësishme përditshme.
Kuptimi i upsert ({ upsert: true } — futo nëse nuk ka përputhje, insert-or-update i MongoDB-it) është i vlefshëm për modelin e zakonshëm insert-or-update.
Është gjithashtu e vlen të shënohet rreziku i deleteMany({}) (fshirja e të gjithash — ngjashëm me rrezikun e mungesës WHERE në SQL).
Meqenëse modifikimi i të dhënave është themelor, dhe meqenëse përditësimet e MongoDB-it të bazuara në operatorë (me grackën e zëvendësimit të dokumenteve), operatorë vargu, dhe upsert janë si të ndryshoni të dhënat në mënyrë korrekte, kuptimi i insert/update/delete — veçanërisht dallimi kritik i update-operatorit (shmangja e zëvendësimit aksidental të dokumenteve) — është njohuri themelore dhe e domosdoshme për çdo zhvillim të MongoDB-it, ku grackja e operatorit në veçanti është një burim i shpeshtë i gabimeve reale.
Një bibliotekë pyetjesh intervistash IT me përgjigje të detajuara — nga Junior te Senior.
Dhuro