আচরণের পার্থক্য

এই পৃষ্ঠায় Cloud Firestore এবং মঙ্গোডিবি-র মধ্যকার আচরণগত পার্থক্য বর্ণনা করা হয়েছে।

MongoDB ভার্সন অনুযায়ী সমর্থিত ফিচারগুলোর বিস্তারিত বিবরণের জন্য দেখুন:

সংযোগ এবং ডাটাবেস

  • প্রতিটি সংযোগ একটিমাত্র Cloud Firestore ডেটাবেসে সীমাবদ্ধ।
  • ডাটাবেসে সংযোগ করার আগে তা অবশ্যই তৈরি করতে হবে।

নামকরণ

The following differences apply to naming parts of your data model.

সংগ্রহ

  • __.*__ এর সাথে মেলে এমন সংগ্রহের নাম সমর্থিত নয়।

ক্ষেত্র

  • __.*__ এর মতো ফিল্ডের নাম সমর্থিত নয়।
  • খালি ফিল্ডের নাম সমর্থিত নয়।

নথি

  • ডকুমেন্টের সর্বোচ্চ আকার হলো ১৬ এমআইবি।
  • ফিল্ডের সর্বোচ্চ নেস্টিং গভীরতা হলো ২০। প্রতিটি অ্যারে এবং অবজেক্ট-টাইপ ফিল্ড সামগ্রিক গভীরতায় এক স্তর যোগ করে।
  • Eventarc ইভেন্টগুলিতে, ১০ MiB-এর চেয়ে বড় ডকুমেন্টগুলি ইভেন্ট পেলোডে অন্তর্ভুক্ত করা হয় না।

_id ক্ষেত্র

  • শীর্ষ-স্তরের _id ফিল্ডটি অবশ্যই ObjectId, String, 64-বিট পূর্ণসংখ্যা, 32-বিট পূর্ণসংখ্যা, Double, Binary, বা Object হতে হবে। অন্যান্য BSON টাইপ সমর্থিত নয়।

মূল্যবোধ

  • The JavaScript, Symbol, DBPointer, and Undefined BSON types are not supported.

তারিখ

  • Date values must fall in [0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z] .

দশমিক ১২৮

  • লেখার সময় NaN , ধনাত্মক অসীম এবং ঋণাত্মক অসীম মানগুলোকে প্রমিত করা হয়।
  • Decimal128-এর উপর গাণিতিক অপারেশন সমর্থিত নয়।

দ্বিগুণ

  • লেখার সময় NaN মানগুলিকে প্রমিত করা হয়।

নিয়মিত অভিব্যক্তি

  • Regular expression options must be valid ("i", "m", "s", "u", or "x") and provided in alphabetical order without repeats.

প্রশ্ন

  • Natural sort order (queries without an explicit sort) does not match insertion order or order by _id ascending.

সমষ্টি

  • সমষ্টি ২৫০টি পর্যায়ে সীমাবদ্ধ।
  • $merge এবং $out স্টেজগুলো সমর্থিত নয়। সমর্থিত স্টেজ ও অপারেটরগুলোর সম্পূর্ণ তালিকার জন্য কমান্ড সেকশনটি দেখুন।
  • $facet স্টেজটি ইনপুট স্টেজে $rand বা $sample সমর্থন করে না, কারণ এটি একটি volatile এক্সপ্রেশন।

লেখে

  • যেসব ডকুমেন্টের নাম ডলার চিহ্ন ("$") দিয়ে শুরু হয়, সেগুলো update বা findAndModify -এর আপসার্ট ফিচার ব্যবহার করে তৈরি করা যায় না।
  • আপনার কানেকশন স্ট্রিং-এ retryWrites=false অন্তর্ভুক্ত আছে কিনা তা নিশ্চিত করুন (অথবা আপনার ড্রাইভারের জন্য উপযুক্ত পদ্ধতিটি ব্যবহার করুন), যাতে ড্রাইভার এই ফিচারটি ব্যবহার করার চেষ্টা না করে। রিট্রাইয়েবল রাইট সমর্থিত নয়।

লেনদেন

  • স্ন্যাপশট আইসোলেশন এবং সিরিয়ালাইজেবল ট্রানজ্যাকশন সমর্থিত।

  • ডিফল্টরূপে, ট্রানজ্যাকশনগুলো স্ন্যাপশট আইসোলেশন সহ অপটিমিস্টিক কনকারেন্সি কন্ট্রোল ব্যবহার করে।

উদ্বেগ পড়ুন

  • Cloud Firestore snapshot , majority এবং linearizable রিড কনসার্ন সমর্থন করে। ডিফল্ট হলো snapshot , যা স্ন্যাপশট আইসোলেশনকে বোঝায়।

    যখন অ্যাপ্লিকেশনটির কঠোর সামঞ্জস্যতা প্রয়োজন এবং রাইট স্কিউ অ্যানোমালি প্রতিরোধ করতে হয়, তখন linearizable ব্যবহার করুন। অন্যান্য ওয়ার্কলোডের ক্ষেত্রে, snapshot পারফরম্যান্স উন্নত করতে এবং ট্রানজ্যাকশন কনটেনশন কমাতে পারে।

উদ্বেগ লিখুন

  • Only w: 'majority' and w: 1 write concerns are supported.

পড়ার পছন্দ

  • Only the primary , primaryPreferred , primary_preferred , secondary_preferred , and nearest read concerns are supported.

সূচক

  • ওয়াইল্ডকার্ড ইনডেক্স সমর্থিত নয়।
  • Cloud Firestore does not automatically create an index on _id , but it ensures values of _id are unique within a collection.
  • যেসব ইনডেক্সে মাল্টি-কি সক্রিয় করা নেই, সেগুলো রাইট অপারেশনের ভিত্তিতে স্বয়ংক্রিয়ভাবে মাল্টি-কি ইনডেক্সে পরিবর্তিত হয় না। ইনডেক্স তৈরি করার সময় আপনাকে অবশ্যই মাল্টি-কি সক্রিয় করতে হবে এবং এই অপশনটি পরিবর্তন করা যায় না।

ত্রুটি

  • Error codes and messages may differ between Cloud Firestore and MongoDB.

কমান্ড

The following behavior differences apply to specific commands.

  • নিম্নলিখিত সারণিতে তালিকাভুক্ত নয় এমন কমান্ডগুলি অসমর্থিত।
  • বেশিরভাগ কমান্ডে comment গৃহীত হলেও তা উপেক্ষা করা হয়।
  • maxTimeMS is accepted by most commands but may be ignored.

প্রশ্ন

এবং লেখে

আদেশ অসমর্থিত ক্ষেত্র

find

  • max
  • min
  • returnKey
  • showRecordId
  • tailable
  • oplogReplay
  • noCursorTimeout
  • awaitData
  • allowPartialResults
  • collation
  • allowDiskUsage
  • let

aggregate

  • collation
  • let

insert

(কিছুই না)

update

একটি আপডেট বিবৃতির মধ্যে:

  • collation

delete

একটি ডিলিট স্টেটমেন্টের মধ্যে:

  • collation

findAndModify

  • collation
  • let

count

  • collation

distinct

  • collation

getMore

  • comment

killCursors

(কিছুই না)

explain

(কিছুই না)

লেনদেন

এবং অধিবেশন

আদেশ অসমর্থিত ক্ষেত্র

commitTransaction

(কিছুই না)

abortTransaction

(কিছুই না)

endSessions

(কিছুই না)

প্রশাসন

আদেশ অসমর্থিত ক্ষেত্র নোট

listDatabases

  • authorizedDatabases
filter প্রদান করা হলে তা অবশ্যই খালি থাকতে হবে।

listCollections

(কিছুই না)

প্রদান করা হলে authorizedCollections অবশ্যই false হতে হবে।

listIndexes

(কিছুই না)

createIndexes

(কিছুই না)

dropIndexes

(কিছুই না)

createCollection

  • timeseries
  • expireAfterSeconds
  • clusteredIndex
  • changeStreamPreAndPostImages
  • size
  • max
  • storageEngine
  • validator
  • validationLevel
  • validationAction
  • indexOptionDefaults
  • viewOn
  • pipeline
  • collation
  • encryptedFields
এই কমান্ডটি কোনো কাজ করে না।

প্রদান করা হলে capped অবশ্যই false হতে হবে।

drop

(কিছুই না)

ড্রপ সংগ্রহের সীমাবদ্ধতা

The following limitations apply when you drop a collection:

  • Index recreation: You cannot create the same index configuration immediately after a drop. You must wait for the background deletion to finish.
  • Size limit: Dropping large collections may result in connection timeouts. Increase the connection deadline if you see timeouts. You can use bulk delete as an alternative.
  • Events: Drop collection events are not generated for Eventarc when using the drop command.

এরপর কী?