MongoDB-এ একাধিক $addToSet ব্যবহার
হ্যাঁ, একই আপডেট অপারেশনে $addToSet একাধিকবার ব্যবহার করা সম্ভব। এটি অ্যারেতে ডুপ্লিকেট না হলে নতুন মান যোগ করে।
উদাহরণ: বিষয়ের অ্যারে সহ ডকুমেন্ট তৈরি
> db.demo27.insertOne({"StudentDetails":{"101":{"Subject":["Java"]}}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e15f9e822d07d3b95082e7f") }
> db.demo27.insertOne({"StudentDetails":{"101":{"Subject":["MySQL"]}}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e15f9eb22d07d3b95082e80") }
আপডেটের আগে ডেটা
> db.demo27.find().pretty();
{
"_id" : ObjectId("5e15f9e822d07d3b95082e7f"),
"StudentDetails" : {
"101" : { "Subject" : [ "Java" ] }
}
}
{
"_id" : ObjectId("5e15f9eb22d07d3b95082e80"),
"StudentDetails" : {
"101" : { "Subject" : [ "MySQL" ] }
}
}
$addToSet ব্যবহার করে আপডেট
প্রথম ডকুমেন্টে "MongoDB" বিষয়টি যোগ করা:
> db.demo27.update({}, {$addToSet: {"StudentDetails.101.Subject": "MongoDB"}}, {upsert: true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেটের পর ডেটা
> db.demo27.find().pretty();
{
"_id" : ObjectId("5e15f9e822d07d3b95082e7f"),
"StudentDetails" : {
"101" : { "Subject" : [ "Java", "MongoDB" ] }
}
}
{
"_id" : ObjectId("5e15f9eb22d07d3b95082e80"),
"StudentDetails" : {
"101" : { "Subject" : [ "MySQL" ] }
}
}
ব্যাখ্যা: কুয়েরি `{}` খালি থাকায় প্রথম ম্যাচ করা ডকুমেন্ট আপডেট হয়। upsert: true মানে যদি কোনো ডকুমেন্ট মেলে না তবে নতুন তৈরি হবে। $addToSet নিশ্চিত করে যে "MongoDB" ইতিমধ্যে থাকলে دوبার যোগ হবে না।