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

MongoDB-এ findAndModify ব্যবহার করে শর্তানুসারে লাস্ট রো আপডেট করা

শর্তানুসারে লাস্ট রো আপডেট করতে MongoDB-তে findAndModify() ব্যবহার করুন। একটি কালেকশন তৈরি করুন:

> db.demo516.insertOne({"Name":"John","Age":22,"Score":56});
{ "acknowledged" : true, "insertedId" : ObjectId("5e889fdb987b6e0e9d18f591") }
> db.demo516.insertOne({"Name":"John","Age":23,"Score":67});
{ "acknowledged" : true, "insertedId" : ObjectId("5e889ff1987b6e0e9d18f592") }
> db.demo516.insertOne({"Name":"John","Age":22,"Score":56});
{ "acknowledged" : true, "insertedId" : ObjectId("5e889ff3987b6e0e9d18f593") }
> db.demo516.insertOne({"Name":"John","Age":22,"Score":66});
{ "acknowledged" : true, "insertedId" : ObjectId("5e889ffa987b6e0e9d18f594") }

find() দিয়ে ডকুমেন্ট দেখান:

> db.demo516.find();

আউটপুট:

Name: "John" এবং Age: 22 শর্ত মেনে যাওয়া লাস্ট ডকুমেন্ট (সাম্প্রতিক _id) আপডেট করার কোয়ারি:

> db.demo516.findAndModify({
    query: {Name: "John", Age: 22},
    sort: {_id: -1},
    update: {$set: {Score: 98}},
    new: true
})
{ "_id" : ObjectId("5e889ffa987b6e0e9d18f594"), "Name" : "John", "Age" : 22, "Score" : 98 }

আপডেটের পর সব ডকুমেন্ট দেখান:

> db.demo516.find();

আউটপুট:

ব্যাখ্যা: findAndModify অ্যাটমিকভাবে খুঁজে আপডেট করে। sort: {_id: -1} লাস্ট ইনসার্টেড (সর্বোচ্চ _id) ডকুমেন্ট সিলেক্ট করে। new: true আপডেটেড ডকুমেন্ট রিটার্ন করে। আধুনিক MongoDB-তে findOneAndUpdate() ব্যবহার করা প্রিয়।

  1. MongoDB-তে কেস-ইনসেনসিটিভ (Case-Insensitive) সার্চ করা ($regex)

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

  3. MongoDB-এ একটি ফিল্ডের সব মান আপডেট করা নির্দিষ্ট স্ট্রিং দিয়ে

  4. MySQL-এ একক কোয়েরিতে সর্বোচ্চ ID والے সারি আপডেট করা