MongoDB-এ কালেকশনের সব ডকুমেন্টে নতুন ফিল্ড (কলাম) যোগ করতে update() মেথডে $set অপারেটর এবং multi: true অপশন ব্যবহার করা হয়। MongoDB স্কিমালেস হওয়ায় নতুন ফিল্ড যোগ করা খুব সহজ।
সিনট্যাক্স
db.getCollection("yourCollectionName").update(
{},
{ $set: { "yourColumnName": "yourValue" } },
false,
true
);
নমুনা কালেকশন তৈরি
> db.addColumnDemo.insertOne({ "StudentId": 101, "StudentName": "Chris" });
{ "acknowledged": true, "insertedId": ObjectId("5e04d66af5e889d7a519950f") }
> db.addColumnDemo.insertOne({ "StudentId": 102, "StudentName": "Robert" });
{ "acknowledged": true, "insertedId": ObjectId("5e04d673f5e889d7a5199510") }
> db.addColumnDemo.insertOne({ "StudentId": 103, "StudentName": "David" });
{ "acknowledged": true, "insertedId": ObjectId("5e04d67bf5e889d7a5199511") }
ডকুমেন্টগুলো দেখানো (আপডেটের আগে)
> db.addColumnDemo.find().pretty();
আউটপুট:
{ "_id": ObjectId("5e04d66af5e889d7a519950f"), "StudentId": 101, "StudentName": "Chris" }
{ "_id": ObjectId("5e04d673f5e889d7a5199510"), "StudentId": 102, "StudentName": "Robert" }
{ "_id": ObjectId("5e04d67bf5e889d7a5199511"), "StudentId": 103, "StudentName": "David" }
নতুন কলাম যোগ করার কোয়েরি
> db.getCollection('addColumnDemo').update(
{},
{ $set: { "StudentCityName": "New York" } },
false,
true
);
WriteResult({ "nMatched": 3, "nUpserted": 0, "nModified": 3 })
আপডেটের পর যাচাই
> db.addColumnDemo.find().pretty();
আউটপুট:
{ "_id": ObjectId("5e04d66af5e889d7a519950f"), "StudentId": 101, "StudentName": "Chris", "StudentCityName": "New York" }
{ "_id": ObjectId("5e04d673f5e889d7a5199510"), "StudentId": 102, "StudentName": "Robert", "StudentCityName": "New York" }
{ "_id": ObjectId("5e04d67bf5e889d7a5199511"), "StudentId": 103, "StudentName": "David", "StudentCityName": "New York" }
ব্যাখ্যা: সব ৩টি ডকুমেন্টে StudentCityName: "New York" ফিল্ড যোগ হয়েছে। updateMany() (MongoDB ৩.২+) ব্যবহার করাই সুপারিশ করা হয়:
db.addColumnDemo.updateMany(
{},
{ $set: { "StudentCityName": "New York" } }
);
শর্তসাপেক্ষে ফিল্ড যোগ
শুধু নির্দিষ্ট শর্ত পূরণ করা ডকুমেন্টে ফিল্ড যোগ করতে:
db.addColumnDemo.updateMany(
{ "StudentId": { $gt: 101 } },
{ $set: { "StudentCityName": "London" } }
);
এটি StudentId ১০১-এর বেশি যাদের, শুধু তাদের ফিল্ড যোগ করবে।