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

MongoDB-এ ফিল্ডের যোগফল নির্দিষ্ট মান থেকে বড় হলে ডকুমেন্ট কিভাবে বের করবেন?

MongoDB-এ একাধিক ফিল্ডের যোগফল (sum) কোনো নির্দিষ্ট মান থেকে বড় হলে সেই ডকুমেন্টগুলো বের করতে $where অপারেটর ব্যবহার করুন।

উদাহরণ

প্রথমে কিছু ডকুমেন্ট তৈরি করুন:

> db.sumOfFieldIsGreaterThanDemo.insertOne({"Price1":10,"Price2":50,"Price3":40});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd84b8bf3115999ed511e6") }

> db.sumOfFieldIsGreaterThanDemo.insertOne({"Price1":11,"Price2":1,"Price3":120});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd84c6bf3115999ed511e7") }

> db.sumOfFieldIsGreaterThanDemo.insertOne({"Price1":10,"Price2":9,"Price3":6});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd84d2bf3115999ed511e8") }

সকল ডকুমেন্ট দেখুন:

> db.sumOfFieldIsGreaterThanDemo.find();

আউটপুট:

{ "_id" : ObjectId("5cdd84b8bf3115999ed511e6"), "Price1" : 10, "Price2" : 50, "Price3" : 40 }
{ "_id" : ObjectId("5cdd84c6bf3115999ed511e7"), "Price1" : 11, "Price2" : 1, "Price3" : 120 }
{ "_id" : ObjectId("5cdd84d2bf3115999ed511e8"), "Price1" : 10, "Price2" : 9, "Price3" : 6 }

যোগফল ১০০-এর বেশি হলে ডকুমেন্ট বের করা

> db.sumOfFieldIsGreaterThanDemo.find({
    $where: function() {
        return this.Price1 + this.Price2 + this.Price3 > 100
    }
});

আউটপুট:

{ "_id" : ObjectId("5cdd84c6bf3115999ed511e7"), "Price1" : 11, "Price2" : 1, "Price3" : 120 }

ব্যাখ্যা: শুধু দ্বিতীয় ডকুমেন্টের যোগফল (১১ + ১ + ১২০ = ১৩২) ১০০-এর বেশি, তাই সেটি ফলাফলে এসেছে।

সতর্কতা: $where জাভাস্ক্রিপ্ট এক্সিকিউশন ব্যবহার করে, তাই বড় ডেটাসেটে পারফরম্যান্স কম হতে পারে। সম্ভব হলে এগ্রিগেশন পাইপলাইন ($addFields, $match) ব্যবহার করুন।

  1. MongoDB-এ aggregate() এবং $sum ব্যবহার করে যোগফল (Sum) বের করা

  2. MongoDB-তে ৫০-এর চেয়ে বড় মানগুলো অ্যারে আকারে বের করা

  3. MongoDB-এ দুটি কলেকশন অ্যাগ্রিগেট করা শর্তসাপেক্ষ মিল অনুযায়ী

  4. MySQL-এ GROUP BY HAVING COUNT(*) ব্যবহার করে ডুপ্লিকেট মান খুঁজুন