Amazon DocumentDB, MongoDB-এর API সমর্থন করে, যার ফলে আপনি MongoDB-এর Query Language ব্যবহার করে ডেটাবেস থেকে তথ্য অনুসন্ধান এবং ম্যানিপুলেট করতে পারেন। এই প্রক্রিয়াগুলির মধ্যে তিনটি গুরুত্বপূর্ণ কার্যকারিতা হলো Projection, Filtering, এবং Sorting। এগুলি ডেটাবেসের মধ্যে থাকা তথ্যের পরিমাণ কমাতে এবং ফলাফলকে আরো নির্দিষ্ট ও কার্যকরীভাবে সজ্জিত করতে সহায়ক।
Projection এর মাধ্যমে আপনি MongoDB অথবা DocumentDB-তে কুয়েরি চালানোর সময় শুধুমাত্র নির্দিষ্ট ফিল্ডগুলো ফিরিয়ে পেতে পারেন, যা ফলাফলের আউটপুটকে আরও নির্দিষ্ট এবং দ্রুততর করে তোলে।
Projection আপনাকে ডেটাবেসে থাকা ডকুমেন্টের সকল ফিল্ডের পরিবর্তে শুধুমাত্র প্রয়োজনীয় ফিল্ডগুলো নিয়ে আসার সুযোগ দেয়।
ধরা যাক, আপনার একটি users
নামক কলেকশন আছে এবং আপনি শুধুমাত্র name
এবং email
ফিল্ডগুলো দেখতে চান। এর জন্য নিম্নলিখিত কুয়েরি ব্যবহার করতে পারেন:
db.users.find({}, { name: 1, email: 1 })
এখানে:
{}
: সমস্ত ডকুমেন্টের জন্য অনুসন্ধান।{ name: 1, email: 1 }
: শুধুমাত্র name
এবং email
ফিল্ডগুলো ফেরত দিবে, অন্যসব ফিল্ড বাদ দিবে।Note: 1 দিয়ে ফিল্ডটি নির্বাচন করা হয়, এবং 0 দিয়ে বাদ দেওয়া হয়। যদি আপনি কোনো ফিল্ড বাদ দিতে চান, তবে তাকে 0 দিয়ে ইন্ডিকেট করুন।
db.users.find({}, { _id: 0, name: 1, email: 1 })
এখানে _id
ফিল্ড বাদ দেওয়া হয়েছে কারণ ডিফল্টভাবে _id
সবসময় ফিরিয়ে আসে।
Filtering দ্বারা আপনি ডেটাবেস থেকে নির্দিষ্ট শর্ত পূরণের ভিত্তিতে ডেটা প্রাপ্তি করতে পারেন। এটি find()
মেথডের মাধ্যমে অনুসন্ধান পরিচালনার সময় শর্ত আরোপ করে।
ধরা যাক, আপনি users
কলেকশন থেকে শুধুমাত্র সেই সমস্ত ব্যবহারকারীর নাম এবং ইমেইল দেখতে চান, যাদের বয়স ৩০ এর উপরে। এর জন্য কুয়েরি হবে:
db.users.find({ age: { $gt: 30 } }, { name: 1, email: 1 })
এখানে:
{ age: { $gt: 30 } }
: age
ফিল্ডের মান ৩০ এর বেশি এমন ডকুমেন্টগুলো বাছাই করবে।{ name: 1, email: 1 }
: শুধুমাত্র name
এবং email
ফিল্ডগুলো ফিরিয়ে আনবে।DocumentDB এবং MongoDB-এর বিভিন্ন comparison operators ব্যবহার করে আরো জটিল ফিল্টারিং করা যায়, যেমন:
$eq
: সমান$ne
: না সমান$lt
: ছোট$lte
: ছোট অথবা সমান$gt
: বড়$gte
: বড় অথবা সমান$in
: একটি নির্দিষ্ট মানের মধ্যেdb.users.find({ age: { $gte: 18, $lte: 40 } }, { name: 1, age: 1 })
এখানে:
Sorting ব্যবহার করে আপনি ডেটাবেসের রিটার্নকৃত ডেটা সাজাতে পারেন। এটি ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজানোর জন্য ব্যবহৃত হয়, যেমন অ্যাসেন্ডিং (ascending) বা ডেসেন্ডিং (descending) অর্ডারে।
ধরা যাক, আপনি users
কলেকশন থেকে সকল ব্যবহারকারীর নাম এবং বয়স দেখতে চান এবং সেই ডেটাকে বয়স অনুযায়ী সাজাতে চান (অ্যাসেন্ডিং অর্ডারে):
db.users.find({}, { name: 1, age: 1 }).sort({ age: 1 })
এখানে:
.sort({ age: 1 })
: age
ফিল্ডটি অ্যাসেন্ডিং (ascending) অর্ডারে সাজাবে। (1 মানে অ্যাসেন্ডিং, -1 মানে ডেসেন্ডিং)db.users.find({}, { name: 1, age: 1 }).sort({ age: -1 })
এখানে:
.sort({ age: -1 })
: age
ফিল্ডটি ডেসেন্ডিং (descending) অর্ডারে সাজাবে।এগুলি ব্যবহার করে আপনি DocumentDB অথবা MongoDB-এর ডেটা অনুসন্ধান, বিশ্লেষণ এবং পরিচালনাকে আরো কার্যকরী এবং সুনির্দিষ্ট করতে পারেন।
common.read_more