Amazon DocumentDB MongoDB-তে ব্যবহৃত Query Language (MQL) এর সাথে একটি উচ্চ স্তরের সামঞ্জস্যতা প্রদান করে। এটি MongoDB ব্যবহারকারীদের জন্য একটি সহজ স্থানান্তর প্রক্রিয়া নিশ্চিত করে, বিশেষ করে যখন তারা তাদের অ্যাপ্লিকেশন AWS পরিবেশে স্থানান্তর করতে চান। তবে, MongoDB-এর কিছু উন্নত বৈশিষ্ট্য DocumentDB-তে সমর্থিত নয়। তাই কিছু পার্থক্য রয়েছে, যদিও অধিকাংশ মৌলিক কার্যক্রম ঠিকভাবে কাজ করে।
MongoDB Query Language এর মূল বৈশিষ্ট্যসমূহ
MongoDB Query Language (MQL) হল MongoDB ডেটাবেসের জন্য ব্যবহৃত একটি শক্তিশালী কুয়েরি ভাষা, যা ডকুমেন্ট ভিত্তিক ডেটা ম্যানিপুলেশন এবং অনুসন্ধান করার জন্য ব্যবহৃত হয়। এতে কুয়েরি, ইনডেক্সিং, এবং অ্যাগ্রিগেশন যেমন বিভিন্ন অপারেশন সহজেই করা যায়। MQL এর কয়েকটি মূল বৈশিষ্ট্য:
- Query: ডেটা অনুসন্ধানের জন্য নির্দিষ্ট শর্তে কুয়েরি তৈরি করা যায়।
- Aggregation: বিভিন্ন ডেটা অপারেশন একত্রিত করতে অ্যাগ্রিগেশন পিপলাইন ব্যবহার করা যায়।
- Update: ডেটা আপডেট করতে বিভিন্ন অপারেশন যেমন
update,upsertপ্রভৃতি ব্যবহৃত হয়। - Delete: ডেটা মুছে ফেলার জন্য
deleteOne,deleteManyঅপারেশন ব্যবহৃত হয়।
DocumentDB এবং MongoDB এর Query Language সামঞ্জস্যতা
1. মৌলিক কুয়েরি অপারেশন
DocumentDB MongoDB-এর মতোই find() এবং query() অপারেশন সমর্থন করে, যা JSON স্টাইলের কুয়েরি ব্যবহার করে ডেটা খুঁজে বের করতে সাহায্য করে। সাধারণ কুয়েরি, যেমন find(), eq, gt, lt, ne ইত্যাদি, একে অপরের সাথে সামঞ্জস্যপূর্ণ।
উদাহরণ:
db.users.find({ "age": { "$gt": 18 } })
এই কুয়েরি MongoDB এবং DocumentDB উভয়েই সমর্থন করবে, যেখানে এটি "age" ১৮ এর বেশি এমন ব্যবহারকারীদের অনুসন্ধান করবে।
2. Aggregation Pipelines
DocumentDB Aggregation Pipelines সমর্থন করে, যা MongoDB-তে ব্যবহৃত অ্যাগ্রিগেশন অপারেশনগুলি চালানোর জন্য ব্যবহৃত হয়। এটি group, match, project, এবং sort অপারেশনগুলির জন্য MongoDB-এর মতো সমর্থন প্রদান করে।
উদাহরণ:
db.orders.aggregate([
{ "$match": { "status": "shipped" } },
{ "$group": { "_id": "$customerId", "totalAmount": { "$sum": "$amount" } } }
])
এটি MongoDB এবং DocumentDB উভয় ক্ষেত্রেই কাজ করবে, যেখানে এটি "shipped" স্ট্যাটাসের অর্ডারগুলির জন্য গ্রুপিং এবং সেমিং অপারেশন করে।
3. Update Operations
DocumentDB MongoDB-এর মতো updateOne() এবং updateMany() অপারেশনগুলি সমর্থন করে, যার মাধ্যমে ডেটা আপডেট করা যায়। তবে, কিছু ক্ষেত্রে upsert সমর্থন নাও থাকতে পারে।
উদাহরণ:
db.users.updateOne(
{ "name": "John" },
{ "$set": { "age": 30 } }
)
এই কুয়েরি MongoDB এবং DocumentDB উভয়েই সমর্থন করে, যেখানে "John" নামের ব্যবহারকারীর বয়স ৩০ তে আপডেট হবে।
4. Indexing
DocumentDB MongoDB-এর ইনডেক্সিং অপারেশনগুলির মতোই কাজ করে, যেমন single field indexes, compound indexes, এবং text indexes। তবে কিছু অগ্রাধিকার ফিচার যেমন geospatial indexes MongoDB-তে বিদ্যমান থাকলেও DocumentDB-তে তাদের সমর্থন নেই।
5. Limitations
DocumentDB MongoDB-এর কিছু উন্নত বৈশিষ্ট্য যেমন Change Streams, Transactions (একাধিক ডকুমেন্টের জন্য), এবং Full-Text Search সম্পূর্ণভাবে সমর্থন করে না। কিছু ক্ষেত্রে aggregation framework এর নির্দিষ্ট ফিচারগুলি ও কাজ নাও করতে পারে।
সামঞ্জস্যতা সংক্রান্ত পার্থক্য
- Change Streams: MongoDB-তে Change Streams একটি রিয়েল-টাইম ডেটা স্ট্রিমিং অপশন সরবরাহ করে, কিন্তু DocumentDB-তে এটি সমর্থিত নয়।
- Transactions: MongoDB তে ACID transactions সমর্থন করা হয়, যেখানে একাধিক ডকুমেন্ট এবং কালেকশনে অ্যাটমিক অপারেশন সম্পাদন করা যায়, তবে DocumentDB এ এর সমর্থন সীমিত।
- Full-Text Search: MongoDB তে text indexing এর মাধ্যমে পূর্ণ পাঠ অনুসন্ধান করতে পারেন, কিন্তু DocumentDB-তে এটি সমর্থিত নয়।
- Advanced Aggregation: MongoDB তে কিছু উন্নত অ্যাগ্রিগেশন ফিচার যেমন $lookup (যা সংযুক্ত ডকুমেন্টগুলিকে একত্রিত করে) এবং $graphLookup (গ্রাফ কুয়েরি করার জন্য) DocumentDB-তে কাজ নাও করতে পারে।
সারাংশ
DocumentDB MongoDB Query Language (MQL) এর সাথে একটি শক্তিশালী সামঞ্জস্যতা প্রদান করে, তবে কিছু ক্ষেত্রে MongoDB-এর উন্নত ফিচারগুলি (যেমন Change Streams, Full-Text Search, এবং ACID Transactions) DocumentDB-তে সমর্থিত নয়। তবে, মৌলিক কুয়েরি অপারেশন এবং অ্যাগ্রিগেশন অপারেশনগুলি MongoDB-এর মতোই কাজ করে, যা MongoDB ব্যবহারকারীদের জন্য DocumentDB তে স্থানান্তর সহজ করে তোলে।
Read more