Query এবং Aggregation উদাহরণ

Database Tutorials - ডকুমেন্ট ডিবি (DocumentDB) - বাস্তব উদাহরণ এবং ব্যবহারিক ডেমো |

Amazon DocumentDB MongoDB API-এর সাথে সামঞ্জস্যপূর্ণ, তাই আপনি MongoDB-এর মতোই query এবং aggregation অপারেশন করতে পারেন। এখানে, আমি কিছু সাধারণ query এবং aggregation উদাহরণ প্রদান করছি যা আপনি DocumentDB-তে ব্যবহার করতে পারেন।


Query উদাহরণ

Query অপারেশন ব্যবহার করে আপনি ডেটাবেস থেকে নির্দিষ্ট ডেটা অনুসন্ধান করতে পারেন। DocumentDB MongoDB এর মতো find(), filter() ইত্যাদি কুয়েরি অপারেশন সমর্থন করে।

১. Simple Query (ডেটা ফিল্টারিং)

এখানে একটি সাধারণ find() কুয়েরি ব্যবহার করা হয়েছে, যা age ফিল্ডের মান ৩০ এর বেশি এমন সব ডকুমেন্ট খুঁজে বের করবে।

db.users.find({
  "age": { "$gt": 30 }
})

Explanation:

  • $gt: এটি "greater than" অপারেটর। এখানে, age ফিল্ডের মান ৩০ এর বেশি এমন ডকুমেন্ট খোঁজা হচ্ছে।

২. Multiple Conditions Query

এখানে age ৩০ এর বেশি এবং city "New York" এর সমন্বয়ে দুটি শর্তে ডেটা অনুসন্ধান করা হয়েছে।

db.users.find({
  "age": { "$gt": 30 },
  "city": "New York"
})

Explanation:

  • দুটি শর্ত একসাথে প্রদান করা হয়েছে। এটি AND শর্তে কাজ করে, অর্থাৎ age ৩০ এর বেশি এবং city "New York" হওয়া দরকার।

৩. Projection Query

আপনি শুধুমাত্র নির্দিষ্ট ফিল্ডগুলো নির্বাচন করতে পারেন projection এর মাধ্যমে।

db.users.find(
  { "age": { "$gt": 30 } },
  { "name": 1, "age": 1 }
)

Explanation:

  • এখানে, age ৩০ এর বেশি এমন সমস্ত ডকুমেন্ট থেকে শুধু name এবং age ফিল্ডগুলো নির্বাচিত হচ্ছে। 1 মানে নির্বাচন করা, এবং 0 মানে বাদ দেওয়া।

৪. Sorting Query

এখানে age ফিল্ড অনুসারে উর্ধ্বমুখী (ascending) এবং নাম অনুসারে নিম্নমুখী (descending) সাজানোর কুয়েরি দেয়া হয়েছে।

db.users.find().sort({ "age": 1, "name": -1 })

Explanation:

  • 1 মানে উর্ধ্বমুখী সাজানো এবং -1 মানে নিম্নমুখী সাজানো।

Aggregation উদাহরণ

Aggregation হলো এমন একটি প্রক্রিয়া যেখানে আপনি একাধিক কুয়েরি অপারেশন একত্রে ব্যবহার করে ডেটাকে প্রসেস এবং বিশ্লেষণ করতে পারেন। MongoDB এবং DocumentDB-তে এটি aggregation pipeline নামক একটি শক্তিশালী টুলের মাধ্যমে করা হয়।

১. Grouping and Counting

এটি একটি aggregation pipeline যেখানে age অনুসারে ডেটা গ্রুপ করা হচ্ছে এবং প্রতিটি গ্রুপের জন্য কুয়েরি করা হচ্ছে কতগুলি রেকর্ড আছে।

db.users.aggregate([
  { "$group": { "_id": "$age", "count": { "$sum": 1 } } }
])

Explanation:

  • $group: এটি ডেটাকে নির্দিষ্ট ফিল্ড (age) অনুযায়ী গ্রুপ করে।
  • $sum: প্রতিটি গ্রুপের জন্য ডকুমেন্টের সংখ্যা যোগ করা হচ্ছে।

২. Grouping with Multiple Fields

এখানে age এবং city ফিল্ডের ভিত্তিতে ডেটা গ্রুপ করা হচ্ছে এবং তাদের ওপর aggregation করা হচ্ছে।

db.users.aggregate([
  { "$group": { "_id": { "age": "$age", "city": "$city" }, "total": { "$sum": 1 } } }
])

Explanation:

  • গ্রুপিং করা হচ্ছে age এবং city এর কম্বিনেশন দিয়ে এবং সেই গ্রুপের জন্য ডকুমেন্টের সংখ্যা হিসাব করা হচ্ছে।

৩. Filtering After Grouping

এখানে, প্রথমে গ্রুপিং করা হচ্ছে এবং তারপর total মানে ১০ বা তার বেশি থাকা গ্রুপগুলো ফিল্টার করা হচ্ছে।

db.users.aggregate([
  { "$group": { "_id": "$age", "total": { "$sum": 1 } } },
  { "$match": { "total": { "$gte": 10 } } }
])

Explanation:

  • $match: গ্রুপ করার পর, আমরা total এর মান ১০ বা তার বেশি এমন গ্রুপগুলো ফিল্টার করছি।

৪. Sorting After Aggregation

এখানে, গ্রুপ করার পরে আউটপুটকে উর্ধ্বমুখীভাবে সাজানো হচ্ছে।

db.users.aggregate([
  { "$group": { "_id": "$age", "total": { "$sum": 1 } } },
  { "$sort": { "total": -1 } }
])

Explanation:

  • $sort: গ্রুপ করা ডেটাকে total ফিল্ড অনুসারে descending (নিম্নমুখী) সাজানো হচ্ছে।

৫. Using $project for Field Selection

$project স্টেজের মাধ্যমে আপনি আগের স্টেজ থেকে নির্দিষ্ট ফিল্ডগুলো নির্বাচন করতে পারেন।

db.users.aggregate([
  { "$group": { "_id": "$age", "total": { "$sum": 1 } } },
  { "$project": { "_id": 0, "age": "$_id", "total": 1 } }
])

Explanation:

  • $project: এখানে _id কে বাদ দিয়ে age এবং total ফিল্ডগুলো নির্বাচন করা হচ্ছে।

সারাংশ

Query এবং Aggregation MongoDB এবং Amazon DocumentDB-তে শক্তিশালী ফিচার। Query অপারেশন ব্যবহার করে আপনি দ্রুত ডেটা অনুসন্ধান করতে পারেন, আর Aggregation আপনাকে আরও উন্নত বিশ্লেষণ এবং ডেটা প্রসেসিং করতে সাহায্য করে। Aggregation Pipeline খুবই শক্তিশালী, যেখানে বিভিন্ন স্টেজে ডেটাকে প্রসেস, গ্রুপ, ফিল্টার, সাজানো এবং ট্রান্সফর্ম করা যায়। DocumentDB-তে এই ধরনের অপারেশন MongoDB API-এর মাধ্যমে করা সম্ভব, যা ডেটাবেসের কার্যকারিতা এবং বিশ্লেষণ প্রক্রিয়াকে আরও উন্নত করে তোলে।

Content added By
Promotion