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

MongoDB-তে দুটি ফিল্ডের যোগফলের ওপর সর্ট করার পদ্ধতি


MongoDB-তে অগ리게শন ফ্রেমওয়ার্ক ব্যবহার করে দুটি ফিল্ডের যোগফলের ওপর সর্ট করা

MongoDB-তে দুটি নমেরিক ফিল্ডের যোগফল (sum) ক্যালকুলেট করে সেটি অনুযায়ী সর্ট করতে $add এবং $sort অপারেটর ব্যবহার করতে হয়।

ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন

> db.orderByTwoFieldsDemo.insertOne({"Value1":10,"Value2":35});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca285576304881c5ce84baa") }
> db.orderByTwoFieldsDemo.insertOne({"Value1":12,"Value2":5});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca2855f6304881c5ce84bab") }
> db.orderByTwoFieldsDemo.insertOne({"Value1":55,"Value2":65});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca285686304881c5ce84bac") }

ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন

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

আউটপুট:

{
  "_id" : ObjectId("5ca285576304881c5ce84baa"),
  "Value1" : 10,
  "Value2" : 35
}
{
  "_id" : ObjectId("5ca2855f6304881c5ce84bab"),
  "Value1" : 12,
  "Value2" : 5
}
{
  "_id" : ObjectId("5ca285686304881c5ce84bac"),
  "Value1" : 55,
  "Value2" : 65
}

কেস ১: যোগফল অনুযায়ী অ্যাসেন্ডিং অর্ডারে সর্ট

> db.orderByTwoFieldsDemo.aggregate([
  {$project: {
    Value1: 1,
    Value2: 1,
    orderBySumValue: {$add: ["$Value1", "$Value2"]}
  }},
  {$sort: {orderBySumValue: 1}}
]);

ফলাফল:

{
  "_id" : ObjectId("5ca2855f6304881c5ce84bab"),
  "Value1" : 12,
  "Value2" : 5,
  "orderBySumValue" : 17
}
{
  "_id" : ObjectId("5ca285576304881c5ce84baa"),
  "Value1" : 10,
  "Value2" : 35,
  "orderBySumValue" : 45
}
{
  "_id" : ObjectId("5ca285686304881c5ce84bac"),
  "Value1" : 55,
  "Value2" : 65,
  "orderBySumValue" : 120
}

কেস ২: যোগফল অনুযায়ী ডিসেন্ডিং অর্ডারে সর্ট

> db.orderByTwoFieldsDemo.aggregate([
  {$project: {
    Value1: 1,
    Value2: 1,
    orderBySumValue: {$add: ["$Value1", "$Value2"]}
  }},
  {$sort: {orderBySumValue: -1}}
]);

ফলাফল:

{
  "_id" : ObjectId("5ca285686304881c5ce84bac"),
  "Value1" : 55,
  "Value2" : 65,
  "orderBySumValue" : 120
}
{
  "_id" : ObjectId("5ca285576304881c5ce84baa"),
  "Value1" : 10,
  "Value2" : 35,
  "orderBySumValue" : 45
}
{
  "_id" : ObjectId("5ca2855f6304881c5ce84bab"),
  "Value1" : 12,
  "Value2" : 5,
  "orderBySumValue" : 17
}

ব্যাখ্যা: $project স্টেজে $add অপারেটর ব্যবহার করে Value1 এবং Value2 যোগ করে নতুন ফিল্ড orderBySumValue তৈরি করা হয়েছে। তারপর $sort স্টেজে সেটি অনুযায়ী সর্ট করা হয়েছে। 1 = অ্যাসেন্ডিং, -1 = ডিসেন্ডিং।

  1. MongoDB-তে দুটি কলাম জুড়ে গ্রুপিং করা

  2. MongoDB-তে অ্যাগ্রিগেশন ফিল্টারে দুটি ফিল্ড তুলনা করা

  3. MongoDB-এ ডট নোটেশন দিয়ে নির্দিষ্ট ফিল্ড প্রজেকশন করা

  4. MongoDB-এ update() এবং $set ব্যবহার করে নির্দিষ্ট ফিল্ড আপডেট করা