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
ਮਹੱਤਵਪੂਰਨ: updates 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 ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਸੋਧਦੀ ਹਨ, ਕਿਸੇ ਵੀ ਡੇਟਾ-ਚਾਲਿਤ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਬੁਨਿਆਦੀ, ਇਸ ਲਈ ਇਹ ਸਮਝਣਾ ਜ਼ਰੂਰੀ ਰਰੋਜ਼ਮਰਾਂ ਦਾ ਗਿਆਨ ਹੈ।
Methods ਨੂੰ ਜਾਣਨਾ (insertOne/insertMany ਬਣਾਉਣ ਲਈ, updateOne/updateMany ਸੋਧਣ ਲਈ, deleteOne/deleteMany ਮਿਟਾਉਣ ਲਈ) ਮੂਲ ਗੱਲਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ।
ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਅਤੇ ਆਮ ਤੌਰ 'ਤੇ ਗਲਤ ਹੋਣ ਵਾਲੀ ਗੱਲ ਇਹ ਹੈ ਕਿ MongoDB updates update operators ($set, $inc, $push, $pull, ਆਦਿ) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਖਾਸ ਫੀਲਡਾਂ ਨੂੰ ਸੋਧਣ ਲਈ — ਅਤੇ ਮਹੱਤਵਪੂਰਣ ਤੌਰ 'ਤੇ, ਓਪਰੇਟਰ ਨੂੰ ਭੁੱਲਣਾ ਸਮੁੱਚੇ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਬਦਲ ਦਿੰਦਾ ਹੈ (ਇੱਕ ਬਦਨਾਮ ਨੁਕਸਾਨ ਜਿੱਥੇ updateOne({...}, {age: 31}) ਸਾਰੀਆਂ ਹੋਰ ਫੀਲਡਾਂ ਨੂੰ ਮਿਟਾ ਦਿੰਦਾ ਹੈ, ਸਿਰਫ age ਛੱਡ ਕੇ), ਇਸ ਲਈ ਹਮੇਸ਼ਾ $set (ਅਤੇ ਦੂਸਰੇ operators) ਨੂੰ ਫੀਲਡ-ਪੱਧਰ ਦੇ updates ਲਈ ਵਰਤਣ ਨੂੰ ਸਮਝਣਾ ਸ਼ੁੱਧਤਾ ਲਈ ਜ਼ਰੂਰੀ ਹੈ।
ਆਮ operators ਨੂੰ ਜਾਣਨਾ ($set, $inc counters ਲਈ, $push/$pull/$addToSet arrays ਲਈ — array operators ਖਾਸ ਤੌਰ 'ਤੇ ਪ੍ਰਾਸੰਗਿਕ ਹਨ MongoDB ਦੀਆਂ array-ਭਰਪੂਰ ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਪਛਾਣ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ) ਰਰੋਜ਼ਮਰਾਂ ਦਾ ਮਹੱਤਵਪੂਰਨ ਗਿਆਨ ਹੈ।
Upsert ਨੂੰ ਸਮਝਣਾ ({ upsert: true } — insert ਜੇ ਕੋਈ ਮੇਲ ਨਹੀਂ ਹੈ, MongoDB ਦਾ insert-or-update) ਆਮ insert-or-update ਪੈਟਰਨ ਲਈ ਮਾਨਯੋਗ ਹੈ।
deleteMany({}) (ਸਬ ਕੁਝ ਮਿਟਾਉਣਾ — SQL ਵਿੱਚ ਗਾਇਬ WHERE ਦੇ ਖਤਰੇ ਵਰਗਾ) ਦਾ ਖ਼ਤਰਾ ਵੀ ਵਿਚਾਰਨ ਦੇ ਯੋਗ ਹੈ।
ਕਿਉਂਕਿ ਡੇਟਾ ਸੋਧਣਾ ਬੁਨਿਆਦੀ ਹੈ, ਅਤੇ ਕਿਉਂਕਿ MongoDB ਦੇ operator-ਅਧਾਰਿਤ updates (document-replacement ਮਨਿਆ ਦੇ ਨਾਲ), array operators, ਅਤੇ upsert ਉਹ ਤਰੀਕੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨਾਲ ਤੁਸੀਂ ਸ਼ੁੱਧ ਤਰੀਕੇ ਨਾਲ ਡੇਟਾ ਬਦਲਦੇ ਹੋ, insert/update/delete ਨੂੰ ਸਮਝਣਾ — ਖਾਸ ਤੌਰ 'ਤੇ ਨਾਜ਼ੁਕ update-operator ਫਰਕ (ਸੰਭਾਵੀ ਦਸਤਾਵੇਜ਼ ਬਦਲਨਾ ਵੰਜਣਾ) — ਮੁੱਖ ਸੰਭਾਵਨਾ, ਮਾਸਟ-ਜਾਣਨਾ ਗਿਆਨ ਹੈ ਕਿਸੇ ਵੀ MongoDB ਵਿਕਾਸ ਲਈ, ਜਿੱਥੇ operator ਬਾਲਣਾ ਖਾਸ ਤੌਰ 'ਤੇ ਅਸਲ ਬਗਸ ਦਾ ਇੱਕ ਆਵ੍ਰਤੀ ਸਰੋਤ ਹੈ।