Amazon DocumentDB MongoDB API-এর সাথে সামঞ্জস্যপূর্ণ, তাই আপনি MongoDB-এর মতোই query এবং aggregation অপারেশন করতে পারেন। এখানে, আমি কিছু সাধারণ query এবং aggregation উদাহরণ প্রদান করছি যা আপনি DocumentDB-তে ব্যবহার করতে পারেন।
Query অপারেশন ব্যবহার করে আপনি ডেটাবেস থেকে নির্দিষ্ট ডেটা অনুসন্ধান করতে পারেন। DocumentDB MongoDB এর মতো find()
, filter()
ইত্যাদি কুয়েরি অপারেশন সমর্থন করে।
এখানে একটি সাধারণ find()
কুয়েরি ব্যবহার করা হয়েছে, যা age
ফিল্ডের মান ৩০ এর বেশি এমন সব ডকুমেন্ট খুঁজে বের করবে।
db.users.find({
"age": { "$gt": 30 }
})
Explanation:
$gt
: এটি "greater than" অপারেটর। এখানে, age
ফিল্ডের মান ৩০ এর বেশি এমন ডকুমেন্ট খোঁজা হচ্ছে।এখানে age
৩০ এর বেশি এবং city
"New York" এর সমন্বয়ে দুটি শর্তে ডেটা অনুসন্ধান করা হয়েছে।
db.users.find({
"age": { "$gt": 30 },
"city": "New York"
})
Explanation:
age
৩০ এর বেশি এবং city
"New York" হওয়া দরকার।আপনি শুধুমাত্র নির্দিষ্ট ফিল্ডগুলো নির্বাচন করতে পারেন projection এর মাধ্যমে।
db.users.find(
{ "age": { "$gt": 30 } },
{ "name": 1, "age": 1 }
)
Explanation:
age
৩০ এর বেশি এমন সমস্ত ডকুমেন্ট থেকে শুধু name
এবং age
ফিল্ডগুলো নির্বাচিত হচ্ছে। 1
মানে নির্বাচন করা, এবং 0
মানে বাদ দেওয়া।এখানে age
ফিল্ড অনুসারে উর্ধ্বমুখী (ascending) এবং নাম অনুসারে নিম্নমুখী (descending) সাজানোর কুয়েরি দেয়া হয়েছে।
db.users.find().sort({ "age": 1, "name": -1 })
Explanation:
1
মানে উর্ধ্বমুখী সাজানো এবং -1
মানে নিম্নমুখী সাজানো।Aggregation হলো এমন একটি প্রক্রিয়া যেখানে আপনি একাধিক কুয়েরি অপারেশন একত্রে ব্যবহার করে ডেটাকে প্রসেস এবং বিশ্লেষণ করতে পারেন। MongoDB এবং DocumentDB-তে এটি aggregation pipeline নামক একটি শক্তিশালী টুলের মাধ্যমে করা হয়।
এটি একটি aggregation pipeline যেখানে age
অনুসারে ডেটা গ্রুপ করা হচ্ছে এবং প্রতিটি গ্রুপের জন্য কুয়েরি করা হচ্ছে কতগুলি রেকর্ড আছে।
db.users.aggregate([
{ "$group": { "_id": "$age", "count": { "$sum": 1 } } }
])
Explanation:
$group
: এটি ডেটাকে নির্দিষ্ট ফিল্ড (age
) অনুযায়ী গ্রুপ করে।$sum
: প্রতিটি গ্রুপের জন্য ডকুমেন্টের সংখ্যা যোগ করা হচ্ছে।এখানে age
এবং city
ফিল্ডের ভিত্তিতে ডেটা গ্রুপ করা হচ্ছে এবং তাদের ওপর aggregation করা হচ্ছে।
db.users.aggregate([
{ "$group": { "_id": { "age": "$age", "city": "$city" }, "total": { "$sum": 1 } } }
])
Explanation:
age
এবং city
এর কম্বিনেশন দিয়ে এবং সেই গ্রুপের জন্য ডকুমেন্টের সংখ্যা হিসাব করা হচ্ছে।এখানে, প্রথমে গ্রুপিং করা হচ্ছে এবং তারপর total
মানে ১০ বা তার বেশি থাকা গ্রুপগুলো ফিল্টার করা হচ্ছে।
db.users.aggregate([
{ "$group": { "_id": "$age", "total": { "$sum": 1 } } },
{ "$match": { "total": { "$gte": 10 } } }
])
Explanation:
$match
: গ্রুপ করার পর, আমরা total
এর মান ১০ বা তার বেশি এমন গ্রুপগুলো ফিল্টার করছি।এখানে, গ্রুপ করার পরে আউটপুটকে উর্ধ্বমুখীভাবে সাজানো হচ্ছে।
db.users.aggregate([
{ "$group": { "_id": "$age", "total": { "$sum": 1 } } },
{ "$sort": { "total": -1 } }
])
Explanation:
$sort
: গ্রুপ করা ডেটাকে total
ফিল্ড অনুসারে descending (নিম্নমুখী) সাজানো হচ্ছে।$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-এর মাধ্যমে করা সম্ভব, যা ডেটাবেসের কার্যকারিতা এবং বিশ্লেষণ প্রক্রিয়াকে আরও উন্নত করে তোলে।
আরও দেখুন...