Cuireann MongoDB athruithe ar dhírithe le (/), (/ le hoibreoirí), agus (/) modhanna. Úsáideann nuashonruithe seachas an doiciméad iomlán a bhaint as — idirdhealú tábhachtach.
Cuireann MongoDB athruithe ar dhírithe le (/), (/ le hoibreoirí), agus (/) modhanna. Úsáideann nuashonruithe seachas an doiciméad iomlán a bhaint as — idirdhealú tábhachtach.
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
Tábhachtach: úsáideann nuashonruithe oibreoirí ($set, $inc, $push, srl.) chun réimsí sonracha a bhogadh. Gan oibreoir, dhéanfá an doiciméad ar fad a chur in ionad — gaol coitianta a bhíonn ann:
// ❌ 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
);
Is iad oibríochtaí insert, update, agus delete an chaoi a athruithe ar dhírithe a dhéanann feidhmchláranna i MongoDB, rud bunúsach do aon fheidhmchlár a bhíonn ar dhírithe ar shonraí, mar sin is riachtanach é a thuiscint go bhíonn sé ar eolas laethúil.
Is leor a bheith ar an eolas fúinne na modhanna (insertOne/insertMany chun a chruthú, updateOne/updateMany chun a bhogadh, deleteOne/deleteMany chun a bhaint) na bunphointe.
Is é an pointe is tábhachtaí agus is coitianta a bheith mearbhall air ná go n-úsáideann nuashonruithe MongoDB update operators ($set, $inc, $push, $pull, srl.) chun réimsí sonracha a bhogadh — agus go cinnte, má dhéanann tú dearmad ar an oibreoir, cuirfidh sé an doiciméad ar fad in ionad (gaol clúiteach ina gcuirfidh updateOne({...}, {age: 31}) gach réimse eile ar ceal, agus ní fhágann sé ach age), mar sin is riachtanach é a thuiscint go n-úsáideann tú i gcónaí $set (agus na hoibreoirí eile) chun nuashonruithe ar leibhéal an réimse a dhéanamh i gceart.
Is eolas laethúil tábhachtach a bheith ar an eolas fúinne na n-oibreoirí coitianta ($set, $inc chun cuntar, $push/$pull/$addToSet le haghaidh eagar — oibreoirí eagair ach go háirithe ábhartha toisc go bhíonn go leor eagair i doiciméid MongoDB).
Is fiúntach a thuiscint upsert ({ upsert: true } — cuir isteach má ní bhíonn meaitseáil ann, insert-nó-update MongoDB) chun an phatrún coitianta insert-nó-update.
Is fiú a thabhairt faoi ndeara freisin an baol atá ann do deleteMany({}) (gach rud a bhaint — cosúil leis an baol in-easnamh-WHERE i SQL).
De bharr go bhíonn athruithe ar dhírithe bunúsach, agus de bharr gur iad nuashonruithe bunaithe ar oibreoirí MongoDB (agus an baol doiciméad-ionadaithe) a bhíonn ann, oibreoirí eagar, agus upsert an chaoi ar a bhíonn tú ag athrú ar dhírithe i gceart, tá sé riachtanach, ach go bhfuil eolas riachtanach ann do thú insert/update/delete — go háirithe an idirdhealú criticiúil update-oibreoirí (ag seachaint ionadú doiciméad neamhbhriathair) — ar fhoinse-eolas do aon bhforbairt MongoDB, áit ar bhí an gaol oibreoirí ach go háirithe foinse go minic de bhugaí fíor-shaol.