এই পৃষ্ঠায় Cloud Firestore এবং মঙ্গোডিবি-র মধ্যকার আচরণগত পার্থক্য বর্ণনা করা হয়েছে।
MongoDB ভার্সন অনুযায়ী সমর্থিত ফিচারগুলোর বিস্তারিত বিবরণের জন্য দেখুন:
সংযোগ এবং ডাটাবেস
- প্রতিটি সংযোগ একটিমাত্র Cloud Firestore ডেটাবেসে সীমাবদ্ধ।
- ডাটাবেসে সংযোগ করার আগে তা অবশ্যই তৈরি করতে হবে।
নামকরণ
আপনার ডেটা মডেলের অংশগুলোর নামকরণের ক্ষেত্রে নিম্নলিখিত পার্থক্যগুলো প্রযোজ্য।
সংগ্রহ
-
__.*__এর সাথে মেলে এমন সংগ্রহের নাম সমর্থিত নয়।
ক্ষেত্র
-
__.*__এর মতো ফিল্ডের নাম সমর্থিত নয়। - খালি ফিল্ডের নাম সমর্থিত নয়।
নথি
- ডকুমেন্টের সর্বোচ্চ আকার ৪ এমআইবি।
- ফিল্ডের সর্বোচ্চ নেস্টিং গভীরতা হলো ২০। প্রতিটি অ্যারে এবং অবজেক্ট-টাইপ ফিল্ড সামগ্রিক গভীরতায় এক স্তর যোগ করে।
_id
- শীর্ষ-স্তরের
_idফিল্ডটি অবশ্যই ObjectId, String, 64-বিট পূর্ণসংখ্যা, 32-বিট পূর্ণসংখ্যা, Double, Binary, বা Object হতে হবে। অন্যান্য BSON টাইপ সমর্থিত নয়।
মূল্যবোধ
- JavaScript, Symbol, DBPointer এবং Undefined BSON টাইপগুলো সমর্থিত নয়।
তারিখ
- তারিখের মান অবশ্যই
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]ব্যবধির মধ্যে হতে হবে।
দশমিক ১২৮
- লেখার সময়
NaN, ধনাত্মক অসীম এবং ঋণাত্মক অসীম মানগুলোকে প্রমিত করা হয়। - Decimal128-এর উপর গাণিতিক অপারেশন সমর্থিত নয়।
দ্বিগুণ
- লেখার সময়
NaNমানগুলিকে প্রমিত করা হয়।
নিয়মিত অভিব্যক্তি
- রেগুলার এক্সপ্রেশনের অপশনগুলো অবশ্যই বৈধ ("i", "m", "s", "u", বা "x") হতে হবে এবং কোনো পুনরাবৃত্তি ছাড়া বর্ণানুক্রমিকভাবে প্রদান করতে হবে।
প্রশ্ন
- স্বাভাবিক সর্ট অর্ডার (সুনির্দিষ্ট সর্ট ছাড়া কোয়েরিগুলোর ক্ষেত্রে) ইনসারশন অর্ডার বা
_idঅনুযায়ী আরোহী ক্রমের সাথে মেলে না।
সমষ্টি
- সমষ্টি ২৫০টি পর্যায়ে সীমাবদ্ধ।
-
$mergeএবং$outস্টেজগুলো সমর্থিত নয়। সমর্থিত স্টেজ ও অপারেটরগুলোর সম্পূর্ণ তালিকার জন্য কমান্ড সেকশনটি দেখুন। -
$lookupস্টেজটিletএবংpipelineফিল্ড সমর্থন করে না। -
$facetস্টেজটি ইনপুট স্টেজে$randবা$sampleসমর্থন করে না, কারণ এটি একটি volatile এক্সপ্রেশন।
লেখে
- যেসব ডকুমেন্টের নাম ডলার চিহ্ন ("$") দিয়ে শুরু হয়, সেগুলো
updateবাfindAndModify-এর আপসার্ট ফিচার ব্যবহার করে তৈরি করা যায় না। - আপনার কানেকশন স্ট্রিং-এ
retryWrites=falseঅন্তর্ভুক্ত আছে কিনা তা নিশ্চিত করুন (অথবা আপনার ড্রাইভারের জন্য উপযুক্ত পদ্ধতিটি ব্যবহার করুন), যাতে ড্রাইভার এই ফিচারটি ব্যবহার করার চেষ্টা না করে। রিট্রাইয়েবল রাইট সমর্থিত নয়।
লেনদেন
স্ন্যাপশট আইসোলেশন এবং সিরিয়ালাইজেবল ট্রানজ্যাকশন সমর্থিত।
ডিফল্টরূপে, ট্রানজ্যাকশনগুলো স্ন্যাপশট আইসোলেশন সহ অপটিমিস্টিক কনকারেন্সি কন্ট্রোল ব্যবহার করে।
উদ্বেগ পড়ুন
Cloud Firestore
snapshot,majorityএবংlinearizableরিড কনসার্ন সমর্থন করে। ডিফল্ট হলোsnapshot, যা স্ন্যাপশট আইসোলেশনকে বোঝায়।যখন অ্যাপ্লিকেশনটির কঠোর সামঞ্জস্যতা প্রয়োজন এবং রাইট স্কিউ অ্যানোমালি প্রতিরোধ করতে হয়, তখন
linearizableব্যবহার করুন। অন্যান্য ওয়ার্কলোডের ক্ষেত্রে,snapshotপারফরম্যান্স উন্নত করতে এবং ট্রানজ্যাকশন কনটেনশন কমাতে পারে।
উদ্বেগ লিখুন
- শুধুমাত্র
w: 'majority'এবংw: 1রাইট কনসার্ন সমর্থিত।
পড়ার পছন্দ
- শুধুমাত্র
primary,primaryPreferred,primary_preferred,secondary_preferredএবংnearestread concerns সমর্থিত।
সূচক
- ওয়াইল্ডকার্ড ইনডেক্স সমর্থিত নয়।
- Cloud Firestore স্বয়ংক্রিয়ভাবে
_idএর উপর ইনডেক্স তৈরি করে না, তবে এটি নিশ্চিত করে যে একটি কালেকশনের মধ্যে_idএর মানগুলো অনন্য থাকে। - যেসব ইনডেক্সে মাল্টি-কি সক্রিয় করা নেই, সেগুলো রাইট অপারেশনের ভিত্তিতে স্বয়ংক্রিয়ভাবে মাল্টি-কি ইনডেক্সে পরিবর্তিত হয় না। ইনডেক্স তৈরি করার সময় আপনাকে অবশ্যই মাল্টি-কি সক্রিয় করতে হবে এবং এই অপশনটি পরিবর্তন করা যায় না।
ত্রুটি
- Cloud Firestore এবং মঙ্গোডিবি-র মধ্যে ত্রুটি কোড এবং বার্তা ভিন্ন হতে পারে।
কমান্ড
নির্দিষ্ট কমান্ডগুলোর ক্ষেত্রে নিম্নলিখিত আচরণগত পার্থক্যগুলো প্রযোজ্য।
- নিম্নলিখিত সারণিতে তালিকাভুক্ত নয় এমন কমান্ডগুলি অসমর্থিত।
- বেশিরভাগ কমান্ডে
commentগৃহীত হলেও তা উপেক্ষা করা হয়। -
maxTimeMSবেশিরভাগ কমান্ডে গৃহীত হয়, কিন্তু এটি উপেক্ষা করা হতে পারে।
প্রশ্ন ও লেখা
| আদেশ | অসমর্থিত ক্ষেত্র |
|---|---|
|
|
|
|
| (কিছুই না) |
| একটি আপডেট বিবৃতির মধ্যে:
|
| একটি ডিলিট স্টেটমেন্টের মধ্যে:
|
|
|
|
|
|
|
|
|
| (কিছুই না) |
| (কিছুই না) |
লেনদেন এবং অধিবেশন
| আদেশ | অসমর্থিত ক্ষেত্র |
|---|---|
| (কিছুই না) |
| (কিছুই না) |
| (কিছুই না) |
প্রশাসন
| আদেশ | অসমর্থিত ক্ষেত্র | নোট |
|---|---|---|
|
| filter প্রদান করা হলে তা অবশ্যই খালি থাকতে হবে। |
| (কিছুই না) | প্রদান করা হলে authorizedCollections অবশ্যই false হতে হবে। |
| (কিছুই না) | |
| (কিছুই না) | |
| (কিছুই না) | |
|
| এই কমান্ডটি কোনো কাজ করে না। প্রদান করা হলে capped অবশ্যই false হতে হবে। |
এরপর কী?
- কুইকস্টার্টটি চালান: একটি ডেটাবেস তৈরি করুন এবং এতে সংযোগ স্থাপন করুন ।
- সমর্থিত বৈশিষ্ট্যগুলির সম্পূর্ণ তালিকার জন্য, সমর্থিত MongoDB ডেটা টাইপ, ড্রাইভার এবং বৈশিষ্ট্যসমূহ দেখুন।