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

MongoDB-এ ট্যাগ আপডেট করার পদ্ধতি


অ্যারে অবজেক্টে নির্দिष्ट আইডি দিয়ে ট্যাগ আপডেট

MongoDB-এ একটি ডকুমেন্টের অ্যারে ফিল্ডে থাকা অবজেক্টের নির্দিষ্ট আইডি খুঁজে সেটির অন্য ফিল্ড আপডেট করতে পজিশনাল $ অপারেটর ব্যবহার করা হয়।

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

> db.demo713.insertOne({
    tags: [
        { id: 101, Name: "Tag-1" },
        { id: 102, Name: "Tag-3" },
        { id: 103, Name: "Tag-3" }
    ]
})

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

> db.demo713.find()

আউটপুট:

{ "_id": ObjectId("..."), "tags": [{ "id": 101, "Name": "Tag-1" }, { "id": 102, "Name": "Tag-3" }, { "id": 103, "Name": "Tag-3" }] }

ট্যাগ আপডেট করার কোয়েরি (id: 102 -> Name: "Tag-2")

> db.demo713.update(
    { "tags.id": 102 },
    { $set: { "tags.$.Name": "Tag-2" } },
    false, true
)

ফলাফল:

WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

আপডেট後の ডকুমেন্ট

> db.demo713.find().pretty()

আউটপুট:

{ "_id": ObjectId("..."), "tags": [{ "id": 101, "Name": "Tag-1" }, { "id": 102, "Name": "Tag-2" }, { "id": 103, "Name": "Tag-3" }] }

ব্যাখ্যা

  • { "tags.id": 102 }: অ্যারে tags এর মধ্যে id: 102 থাকা এলিমেন্ট খুঁজে
  • tags.$.Name: পজিশনাল $ দিয়ে সেই ম্যাচ করা এলিমেন্টের Name আপডেট করে
  • update(query, update, upsert, multi): পুরনো সিনট্যাক্স (upsert=false, multi=true)
  • আধুনিক সিনট্যাক্স: db.demo713.updateOne({ "tags.id": 102 }, { $set: { "tags.$.Name": "Tag-2" } })
  • যদি একাধিক এলিমেন্টে id: 102 থাকে, তবে শুধু প্রথমটিই আপডেট হবে
  1. MongoDB-এ অ্যারে অবজেক্টের নির্দিষ্ট ইনডেক্স আপডেট করা

  2. MongoDB-তে ট্যাগ রেকর্ড দ্রুত আপডেট করা (পজিশনাল $ অপারেটর)

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

  4. MongoDB-তে ডট নোটেশন ব্যবহার করে নেস্টেড ডকুমেন্ট আপডেট করা