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() এর আচরণ
| পরিস্থিতি | ফলাফল |
|---|---|
| ডকুমেন্টে _id নেই | নতুন ডকুমেন্ট ইনসার্ট (অটো _id জেনারেট) |
| ডকুমেন্টে _id আছে এবং কলেকশনে মেলে | পুরো ডকুমেন্ট রিপ্লেস (replaceOne-এর মত) |
| ডকুমেন্টে _id আছে কিন্তু কলেকশনে নেই | নতুন ডকুমেন্ট ইনসার্ট (নির্দিষ্ট _id দিয়ে) |