MongoDB ibdel id-data bl-metodi ta' insert (insertOne/insertMany), update (updateOne/updateMany ma' operaturi), u delete (deleteOne/deleteMany). L-updates jużaw update operators aktar milli jissostitwixxu dokumenti sħaħ — distinzjoni importanti.
Insert
db.users.insertOne({ name: "Ann", age: 30 }); // → returns the inserted _id
db.users.insertMany([{ name: "Bob" }, { name: "Carol" }]); // bulk insert (efficient)
Update b'operaturi (tagħmel l-ebda sostituzzjoni tad-dokumentu sħiħ)
// 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
Importanti: l-updates jużaw operaturi ($set, $inc, $push, eċċ.) biex jimmodifikaw kampi speċifiċi. Mingħajr operatur, kont tissostitwixxi d-dokumentu sħiħ — pitfall komuni:
// ❌ 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 } });
Delete
db.users.deleteOne({ name: "Ann" }); // delete the first match
db.users.deleteMany({ active: false }); // delete all matching
db.users.deleteMany({}); // ⚠️ deletes ALL documents!
Upsert — insert jekk ma nstabbax
db.users.updateOne(
{ email: "[email protected]" },
{ $set: { name: "Ann" } },
{ upsert: true } // if no match, INSERT a new document
);
Għaliex importanti
L-operazzjonijiet insert, update, u delete huma kif l-applikazzjonijiet jimmodifikaw id-data f'MongoDB, fundamentali għal kwalunkwe applikazzjoni ddrivata mid-data, għalhekk il-fehim ta' dawn hija essenzjali bħala għarrixa ta' kull jum.
Il-għarrixa tal-metodi (insertOne/insertMany għat-tħolqid, updateOne/updateMany għall-modifikazzjoni, deleteOne/deleteMany għat-tneħħija) tkopri l-bażikz.
L-iktar punt importanti u komunement miżfud hija li l-updates ta' MongoDB jużaw update operators ($set, $inc, $push, $pull, eċċ.) biex jimmodifikaw kampi speċifiċi — u kruċjalment, tinsija l-operatur tissostitwixxi d-dokumentu sħiħ (pitfall nufuż fejn updateOne({...}, {age: 31}) jiħassar il-kampi l-oħra kollha, għoli biss age), għalhekk il-fehim li dejjem tuża $set (u l-operaturi l-oħra) għall-updates tal-livell tal-kampi hija essenzjali għall-korrettezza.
Il-għarrixa tal-operaturi komuni ($set, $inc għat-tqarrija, $push/$pull/$addToSet għal arrays — l-operaturi tal-arrays ikunu rilevanti b'mod partikolari minħabba d-dokumenti ricchi ta' arrays ta' MongoDB) hija għarrixa importanti ta' kull jum.
Il-fehim ta' upsert ({ upsert: true } — insert jekk ma nstabbax il-match, insert-or-update ta' MongoDB) huwa valizzat għall-pattern komuni ta' insert-or-update.
Id-danjeru ta' deleteMany({}) (ħassar ta' kollox — simili għad-danjeru ta' WHERE nieqsa f'SQL) huwa ħadd li jiswa li jiġi nnutat.
Billi l-modifikazzjoni tad-data hija fundamentali, u billi l-updates ibbażati fuq l-operatur ta' MongoDB (b'il-pitfall ta' sostituzzjoni tad-dokumentu), l-operaturi tal-arrays, u upsert huma kif taġġorna b'mod korrett id-data, il-fehim ta' insert/update/delete — speċjalment id-distinzjoni kritika ta' update-operator (li tevita s-sostituzzjoni akkidentali tad-dokumentu) — hija essenzjali, għarrixa li għandek tkun taf għal kwalunkwe żvilupp ta' MongoDB, fejn il-pitfall tal-operatur b'mod partikolari huwa sors frekwent ta' bugs reali.
