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

MongoDB-তে ভেরিয়েবল ইনডেক্স ব্যবহার করে অ্যারে আপডেট করা

MongoDB-এ অ্যারের নির্দিষ্ট ইনডেক্সে ভেরিয়েবল ব্যবহার করে মান আপডেট করতে ডাইনামিক কী (dynamic key) কনস্ট্রাক্ট করতে হয়।

সিনট্যাক্স

var yourIndexVariableName = yourIndexValue,
    anyVariableName = { "$set": {} };
anyVariableName["$set"]["yourFieldName." + yourIndexVariableName] = "yourValue";
db.yourCollectionName.update({ "_id": yourObjectId }, anyVariableName);

নমুনা ডেটা তৈরি করা

updateByVariableDemo কালেকশনে একটি ডকুমেন্ট ইনসার্ট করি যাতে StudentSubjects অ্যারে থাকে।

> db.updateByVariableDemo.insertOne({"StudentSubjects":["MySQL","Java","SQL Server","PL/SQL"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd553c37924bb85b3f4893a") }

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

> db.updateByVariableDemo.find().pretty();

আউটপুট:

{
  "_id" : ObjectId("5cd553c37924bb85b3f4893a"),
  "StudentSubjects" : [ "MySQL", "Java", "SQL Server", "PL/SQL" ]
}

ভেরিয়েবল ইনডেক্স দিয়ে আপডেট করা

ইনডেক্স ১ (দ্বিতীয় উপাদান) "Java" কে "MongoDB" করতে:

> var indexValue = 1,
    valueToUpdate = { "$set": {} };
> valueToUpdate["$set"]["StudentSubjects." + indexValue] = "MongoDB";
MongoDB
> db.updateByVariableDemo.update(
  { "_id": ObjectId("5cd553c37924bb85b3f4893a") },
  valueToUpdate
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ফলাফল দেখানো

> db.updateByVariableDemo.find().pretty();

আউটপুট:

{
  "_id" : ObjectId("5cd553c37924bb85b3f4893a"),
  "StudentSubjects" : [ "MySQL", "MongoDB", "SQL Server", "PL/SQL" ]
}

টিপস: এই প্যাটার্ন রানটাইমে ইনডেক্স নির্ণয় করার সময় খুব কাজে লাগে। MongoDB 4.2+ এ updateOne এর সাথে অ্যারে ফিল্টারও ব্যবহার করা যায়।

  1. MongoDB-এ অ্যারে সাব-ডকুমেন্ট আপডেট: $set ও পজিশনাল $ অপারেটর

  2. MongoDB-এ অ্যারে অবজেক্টের নির্দিষ্ট ইনডেক্স আপডেট করা

  3. MongoDB-তে অ্যারے के ভেতরের এলিমেন্ট আপডেট

  4. MongoDB-তে নেস্টেড ডকুমেন্ট আপডেট করা (ডট নোটেশন + পজিশনাল $)