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

MongoDB-তে লিস্ট সর্ট করে পজিশন (র‍্যাঙ্ক) যোগ করা

MongoDB-তে ডকুমেন্টগুলো কোনো ফিল্ড অনুযায়ী সর্ট করে সেকোয়েনশিয়াল পজিশন (১, ২, ৩...) যোগ করতে JavaScript লুপ এবং save() ব্যবহার করা হয়। দ্রষ্টব্য: MongoDB ৪.২+ এ আটোমেটিক র‍্যাঙ্কিংয় জন্য $setWindowFields (সंस्कরণ ৫.০+) বা অ্যাগ্রিগেশন ব্যবহার করা ভালো।

উদাহরণ: স্কোর সহ ডকুমেন্ট

> db.demo581.insertOne({"Name": "Chris", "Score": 56});
> db.demo581.insertOne({"Name": "Bob", "Score": 240});
> db.demo581.insertOne({"Name": "David", "Score": 150});

সর্ট করে পজিশন যোগ করা (লিগ্যাসি পদ্ধতি)

> db.demo581.createIndex({Score: 1});
> var i = 1;
> db.demo581.find().sort({ "Score": 1 }).forEach(function(d) {
    d.Position = i;
    i++;
    db.demo581.save(d);
});

ফলাফল

> db.demo581.find();

আউটপুট:

{ "Name" : "Chris", "Score" : 56,  "Position" : 1 }
{ "Name" : "David", "Score" : 150, "Position" : 2 }
{ "Name" : "Bob",   "Score" : 240, "Position" : 3 }

আধুনিক পদ্ধতি (MongoDB 5.0+):

db.demo581.aggregate([
    { $sort: { Score: 1 } },
    { $setWindowFields: {
        sortBy: { Score: 1 },
        output: { Position: { $documentNumber: {} } }
    }}
]);

এটি আরও দ্রুত, এটমিক, এবং শেল-লুপের ঝামেলা নেই।

  1. Android RecyclerView-এ ডিভাইডার ও স্পেস যোগ করার উপায়

  2. C#-এ নির্দিষ্ট পজিশনে লিস্টে আইটেম ইনসার্ট করা

  3. C#-এ লিস্টে আইটেম যোগ করা (Add Items to List)

  4. জাভাতে ArrayList-এ নির্দিষ্ট পজিশনে অবজেক্ট ইনসার্ট কীভাবে করবেন?