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

MongoDB-এ দুটি ফিল্ড যোগ করে তার মান অনুযায়ী ডকুমেন্ট সার্চ করা (অ্যাগ্রিগেশন)

MongoDB-এ দুটি ফিল্ডের যোগফল বের করে তার উপর ভিত্তি করে ডকুমেন্ট ফিল্টার করতে অ্যাগ্রিগেশন পাইপলাইনে $add এবং $match ব্যবহার করা হয়।

নমুনা ডেটা তৈরি (Value1, Value2)

> db.searchDocumentsDemo.insertOne({"Value1":100,"Value2":560});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fe1eedc6604c74817ce9") }
> db.searchDocumentsDemo.insertOne({"Value1":300,"Value2":150});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fe29edc6604c74817cea") }
> db.searchDocumentsDemo.insertOne({"Value1":400,"Value2":200});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fe30edc6604c74817ceb") }
> db.searchDocumentsDemo.insertOne({"Value1":190,"Value2":210});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fe45edc6604c74817cec") }

সব ডকুমেন্ট দেখুন

> db.searchDocumentsDemo.find().pretty();
আউটপুট:
{
  "_id": ObjectId("5cd3fe1eedc6604c74817ce9"), "Value1": 100, "Value2": 560
}
{
  "_id": ObjectId("5cd3fe29edc6604c74817cea"), "Value1": 300, "Value2": 150
}
{
  "_id": ObjectId("5cd3fe30edc6604c74817ceb"), "Value1": 400, "Value2": 200
}
{
  "_id": ObjectId("5cd3fe45edc6604c74817cec"), "Value1": 190, "Value2": 210
}

অ্যাগ্রিগেশন: Value1 + Value2 < 500 হলে ডকুমেন্ট খোঁজা

> db.searchDocumentsDemo.aggregate([
  { $project: { totalValue: { $add: ["$Value1", "$Value2"] } } },
  { $match: { totalValue: {$lt: 500} } }
]);
আউটপুট (যোগফল ৪৫০ এবং ৪০০):
{
  "_id": ObjectId("5cd3fe29edc6604c74817cea"),
  "totalValue": 450
}
{
  "_id": ObjectId("5cd3fe45edc6604c74817cec"),
  "totalValue": 400
}

ব্যাখ্যা: $project-এ $add দিয়ে totalValue ফিল্ড তৈরি করা হয়েছে। তারপর $match দিয়ে totalValue < 500 শর্তে ফিল্টার করা হয়েছে। প্রথম ডকুমেন্ট (১০০+৫৬০=৬৬০) বাদ পড়েছে।

  1. MongoDB-এ অ্যারেতে ম্যাচ করা অবজেক্টের সংখ্যা অনুযায়ী ডকুমেন্ট খোঁজা ($where / Aggregation)

  2. MongoDB-এ অ্যারের ডকুমেন্ট কাউন্ট করা নির্দিষ্ট ফিল্ডের মান অনুযায়ী

  3. MongoDB-এ for লুপ দিয়ে ভ্যালু পুশ করা (save() ব্যবহার করে)

  4. MySQL-এ সঠিক স্ট্রিং মান খুঁজে বের করা (COLLATE ব্যবহার)