কম্পিউটার টিউটোরিয়াল

MongoDB-এ save() মেথডের সঠিক ব্যবহার


save() মেথড: আপসার্ট আচরণ

MongoDB-এ db.collection.save() মেথড একটি ডকুমেন্ট আপসার্ট (আপডেট বা ইন্সার্ট) করতে ব্যবহৃত হয়। যদি ডকুমেন্টে _id থাকে তবে আপডেট করে, না থাকলে নতুন ইনসার্ট করে।

নমুনা ডেটা তৈরি (save দিয়ে)

> db.demo481.save({ "FirstName": "Chris", "LastName": "Brown" })
> db.demo481.save({ "FirstName": "David", "LastName": "Miller" })
> db.demo481.save({ "FirstName": "John", "LastName": "Doe" })
> db.demo481.save({ "FirstName": "John", "LastName": "Smith" })

ফলাফল: প্রতিটি WriteResult({ "nInserted": 1 }) কারণ _id ছিল না।

সমস্ত ডকুমেন্ট দেখানো

> db.demo481.find()

আউটপুট:

{ "_id": ObjectId("..."), "FirstName": "Chris", "LastName": "Brown" }
{ "_id": ObjectId("..."), "FirstName": "David", "LastName": "Miller" }
{ "_id": ObjectId("..."), "FirstName": "John", "LastName": "Doe" }
{ "_id": ObjectId("..."), "FirstName": "John", "LastName": "Smith" }

save() এর আচরণ

⚠️ সতর্কতা

  • save() ডিপ্রিকেটেড (MongoDB 4.2+), নতুন কোডে ব্যবহার করা উচিত নয়
  • বিকল্প:
    • ইন্সার্ট: insertOne() / insertMany()
    • আপডেট: updateOne() / updateMany() (with $set)
    • আপসার্ট: updateOne({ _id: ... }, { $set: ... }, { upsert: true })
    • রিপ্লেস: replaceOne({ _id: ... }, newDoc, { upsert: true })
  • save() পুরো ডকুমেন্ট রিপ্লেস করে, $set দিয়ে পার্শিয়াল আপডেট সম্ভব নয়
  1. MongoDB-এ কালেকশন ড্রপ কীভাবে করবেন?

  2. MongoDB-এ 'Not Like' অপারেটর ব্যবহার করার পদ্ধতি ($not + regex)

  3. MongoDB কনসোল ক্লিয়ার করার পদ্ধতি

  4. MySQL-এ WITH ROLLUP সঠিকভাবে ব্যবহার করা

কপিরাইট © https://bd.wsxdn.com সমস্ত অধিকার সংরক্ষিত
পরিস্থিতিফলাফল
ডকুমেন্টে _id নেইনতুন ডকুমেন্ট ইনসার্ট (অটো _id জেনারেট)
ডকুমেন্টে _id আছে এবং কলেকশনে মেলেপুরো ডকুমেন্ট রিপ্লেস (replaceOne-এর মত)
ডকুমেন্টে _id আছে কিন্তু কলেকশনে নেইনতুন ডকুমেন্ট ইনসার্ট (নির্দিষ্ট _id দিয়ে)