इस पेज पर, Cloud Firestore और MongoDB के व्यवहार में अंतर के बारे में बताया गया है.
MongoDB के वर्शन के हिसाब से, काम करने वाली सुविधाओं के बारे में जानने के लिए, यह लेख पढ़ें:
- इस्तेमाल की जा सकने वाली सुविधाएं: 8.0
- इस्तेमाल की जा सकने वाली सुविधाएं: 7.0
- इस्तेमाल की जा सकने वाली सुविधाएं: 6.0
- इस्तेमाल की जा सकने वाली सुविधाएं: 5.0
कनेक्शन और डेटाबेस
- हर कनेक्शन को सिर्फ़ एक Cloud Firestore डेटाबेस से कनेक्ट किया जा सकता है.
- किसी डेटाबेस से कनेक्ट करने से पहले, उसे बनाना ज़रूरी है.
नाम देना
आपके डेटा मॉडल के हिस्सों के नाम रखने के लिए, यहां दिए गए अंतर लागू होते हैं.
संग्रह
__.*__से मेल खाने वाले कलेक्शन के नाम इस्तेमाल नहीं किए जा सकते.
फ़ील्ड
__.*__से मिलते-जुलते फ़ील्ड के नाम इस्तेमाल नहीं किए जा सकते.- फ़ील्ड के नाम खाली नहीं छोड़े जा सकते.
दस्तावेज़
- दस्तावेज़ का साइज़ 16 MiB से ज़्यादा नहीं होना चाहिए.
- फ़ील्ड को नेस्ट करने के लेवल की तय सीमा 20 है. ऐरे और ऑब्जेक्ट टाइप वाले हर फ़ील्ड से, कुल डेप्थ में एक लेवल जुड़ जाता है.
- Eventarc इवेंट में, 10 MiB से बड़े दस्तावेज़ों को इवेंट के पेलोड में शामिल नहीं किया जाता.
_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]के बीच होनी चाहिए.
Decimal128
NaN, पॉज़िटिव इनफ़िनिटी, और नेगेटिव इनफ़िनिटी वैल्यू को लिखने के समय कैननिकल किया जाता है.- Decimal128 पर अंकगणितीय कार्रवाइयां नहीं की जा सकतीं.
डबल-साइज़ बेड
NaNवैल्यू को लिखने के समय कैननिकल किया जाता है.
रेगुलर एक्सप्रेशन
- रेगुलर एक्सप्रेशन के विकल्प मान्य होने चाहिए ("i", "m", "s", "u" या "x"). साथ ही, इन्हें दोहराए बिना वर्णमाला के क्रम में दिया जाना चाहिए.
क्वेरी
- नैचुरल सॉर्ट ऑर्डर (सॉर्ट करने के लिए साफ़ तौर पर निर्देश नहीं देने वाली क्वेरी), इंसर्शन ऑर्डर या
_idके हिसाब से बढ़ते क्रम में नहीं है.
एग्रीगेशन
- एग्रीगेशन में ज़्यादा से ज़्यादा 250 स्टेज हो सकती हैं.
$mergeऔर$outस्टेज मौजूद नहीं हैं. इस्तेमाल किए जा सकने वाले स्टेज और ऑपरेटर की पूरी सूची देखने के लिए, कमांड सेक्शन देखें.$facetस्टेज में, इनपुट स्टेज में$randया$sampleका इस्तेमाल नहीं किया जा सकता, क्योंकि यह एक अस्थिर एक्सप्रेशन है.
लिखता है
updateयाfindAndModifyकी अपसर्ट सुविधा का इस्तेमाल करके, डॉलर के निशान ("$") से शुरू होने वाले नाम वाले दस्तावेज़ नहीं बनाए जा सकते.- पक्का करें कि आपकी कनेक्शन स्ट्रिंग में
retryWrites=falseशामिल हो. इसके अलावा, अपने ड्राइवर के हिसाब से सही तरीके का इस्तेमाल करें, ताकि यह पक्का किया जा सके कि ड्राइवर इस सुविधा का इस्तेमाल न करे. फिर से लिखने की सुविधा काम नहीं करती.
लेन-देन
स्नैपशॉट आइसोलेशन और सीरियलाइज़ किए जा सकने वाले लेन-देन काम करते हैं.
डिफ़ॉल्ट रूप से, लेन-देन में स्नैपशॉट आइसोलेशन के साथ ऑप्टिमिस्टिक कंकरेंसी कंट्रोल का इस्तेमाल किया जाता है.
समस्या से जुड़ी जानकारी देखने की अनुमति दें
Cloud Firestore,
majority, औरlinearizableरीड कंसर्न के साथ काम करता है. डिफ़ॉल्ट रूप सेsnapshotसेट होता है, जिसका मतलब स्नैपशॉट आइसोलेशन होता है.snapshotजब ऐप्लिकेशन को सख्त स्थिरता की ज़रूरत हो और उसे राइट स्क्यू की गड़बड़ियों को रोकना हो, तब
linearizableका इस्तेमाल करें. अन्य वर्कलोड के लिए,snapshotपरफ़ॉर्मेंस को बेहतर बना सकता है और लेन-देन से जुड़ी समस्याओं को कम कर सकता है.
किसी समस्या के बारे में शिकायत करें
- सिर्फ़
w: 'majority'औरw: 1राइट कंसर्न का इस्तेमाल किया जा सकता है.
पढ़ने से जुड़ी प्राथमिकता
- सिर्फ़
primary,primaryPreferred,primary_preferred,secondary_preferred, औरnearestसे जुड़ी समस्याओं को पढ़ा जा सकता है.
इंडेक्स
- वाइल्डकार्ड इंडेक्स का इस्तेमाल नहीं किया जा सकता.
- Cloud Firestore,
_idपर अपने-आप इंडेक्स नहीं बनाता. हालांकि, यह पक्का करता है कि_idकी वैल्यू, किसी कलेक्शन में यूनीक हों. सॉर्ट करने के लिए, आपको_idफ़ील्ड पर क्रम से लगाया गया इंडेक्स बनाना होगा. हालांकि, हॉटस्पॉट से जुड़ी संभावित समस्याओं के बारे में ध्यान रखें.खास तौर पर, अगर आपकी_idवैल्यू लगातार बढ़ रही हैं या घट रही हैं (जैसे, टाइमस्टैंप). इससे बड़े पैमाने पर परफ़ॉर्मेंस पर असर पड़ सकता है. - मल्टी-की की सुविधा के बिना बनाए गए इंडेक्स, राइट ऑपरेशन के आधार पर अपने-आप मल्टी-की इंडेक्स में नहीं बदलते. इंडेक्स बनाते समय, आपको मल्टी-की चालू करनी होगी. इस विकल्प को बदला नहीं जा सकता.
गड़बड़ियां
- गड़बड़ी के कोड और मैसेज, Cloud Firestore और MongoDB के बीच अलग-अलग हो सकते हैं.
निर्देश
यहां दी गई जानकारी से पता चलता है कि कुछ खास कमांड के लिए, दोनों वर्शन में क्या अंतर है.
- यहां दी गई टेबल में शामिल नहीं किए गए निर्देशों का इस्तेमाल नहीं किया जा सकता.
commentको ज़्यादातर कमांड के लिए इस्तेमाल किया जा सकता है, लेकिन इसे अनदेखा कर दिया जाता है.maxTimeMSको ज़्यादातर कमांड में इस्तेमाल किया जा सकता है. हालांकि, इसे अनदेखा भी किया जा सकता है.
क्वेरी
और लिखता है
| Command | ऐसे फ़ील्ड जिनका इस्तेमाल नहीं किया जा सकता |
|---|---|
|
|
|
|
|
|
|
|
(कुछ नहीं) |
|
|
अपडेट स्टेटमेंट में:
|
|
|
मिटाने के स्टेटमेंट में:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(कुछ नहीं) |
|
|
(कुछ नहीं) |
लेन-देन
और सेशन
| Command | ऐसे फ़ील्ड जिनका इस्तेमाल नहीं किया जा सकता |
|---|---|
|
|
(कुछ नहीं) |
|
|
(कुछ नहीं) |
|
|
(कुछ नहीं) |
एडमिनिस्ट्रेशन
| Command | ऐसे फ़ील्ड जिनका इस्तेमाल नहीं किया जा सकता | ज़रूरी जानकारी |
|---|---|---|
|
|
|
अगर filter की वैल्यू दी गई है, तो इसे खाली छोड़ना होगा. |
|
|
(कुछ नहीं) |
अगर authorizedCollections की वैल्यू दी गई है, तो उसे 'गलत' के तौर पर सेट किया जाना चाहिए. |
|
|
(कुछ नहीं) |
|
|
|
(कुछ नहीं) |
|
|
|
(कुछ नहीं) |
|
|
|
|
यह कमांड कोई कार्रवाई नहीं करती है. अगर capped दिया गया है, तो इसकी वैल्यू 'गलत है' होनी चाहिए.
|
|
|
(कुछ नहीं) |
कलेक्शन हटाने से जुड़ी सीमाएं
किसी कलेक्शन को हटाने पर, ये सीमाएं लागू होती हैं:
- इंडेक्स फिर से बनाना: इंडेक्स में बदलाव होने के तुरंत बाद, उसी इंडेक्स कॉन्फ़िगरेशन को नहीं बनाया जा सकता. आपको बैकग्राउंड हटाने की प्रोसेस पूरी होने तक इंतज़ार करना होगा.
- साइज़ की सीमा: बड़े कलेक्शन को हटाने पर, कनेक्शन टाइम आउट हो सकते हैं. अगर आपको टाइम आउट दिखते हैं, तो कनेक्शन की समयसीमा बढ़ाएं. इसके अलावा, एक साथ कई आइटम मिटाने की सुविधा का इस्तेमाल किया जा सकता है.
- इवेंट:
dropकमांड का इस्तेमाल करने पर, Eventarc के लिए ड्रॉप कलेक्शन इवेंट जनरेट नहीं होते हैं.
आगे क्या करना है
- क्विकस्टार्ट: डेटाबेस बनाना और उससे कनेक्ट करना को चलाएं.
- इस्तेमाल की जा सकने वाली सुविधाओं की पूरी सूची देखने के लिए, MongoDB के साथ काम करने वाले डेटा टाइप, ड्राइवर, और सुविधाएं लेख पढ़ें.