यह सिर्फ़ Cloud Firestore Enterprise वर्शन के लिए काम का है. |
इस पेज पर, MongoDB के साथ काम करने वाले Cloud Firestore और MongoDB के व्यवहार में अंतर के बारे में बताया गया है.
MongoDB के वर्शन के हिसाब से, काम करने वाली सुविधाओं के बारे में जानने के लिए, यहां जाएं:
- इस्तेमाल की जा सकने वाली सुविधाएं: 8.0
- इस्तेमाल की जा सकने वाली सुविधाएं: 7.0
- इस्तेमाल की जा सकने वाली सुविधाएं: 6.0
- इस्तेमाल की जा सकने वाली सुविधाएं: 5.0
कनेक्शन और डेटाबेस
- हर कनेक्शन को, MongoDB के साथ काम करने वाले एक Cloud Firestore डेटाबेस तक सीमित किया जाता है.
- डेटाबेस से कनेक्ट करने से पहले, उसे बनाना ज़रूरी है.
नाम देना
आपके डेटा मॉडल के हिस्सों के नाम रखने के लिए, यहां दिए गए अंतर लागू होते हैं.
संग्रह
__.*__
से मेल खाने वाले कलेक्शन के नाम इस्तेमाल नहीं किए जा सकते.
फ़ील्ड
__.*__
से मिलते-जुलते फ़ील्ड के नाम इस्तेमाल नहीं किए जा सकते.- फ़ील्ड के नाम खाली नहीं होने चाहिए.
दस्तावेज़
- दस्तावेज़ का साइज़ 4 MiB से ज़्यादा नहीं होना चाहिए.
- फ़ील्ड को नेस्ट करने के लेवल की तय सीमा 20 है. ऐरे और ऑब्जेक्ट टाइप वाले हर फ़ील्ड से, कुल डेप्थ में एक लेवल जुड़ जाता है.
_id
- दस्तावेज़
_id
(टॉप-लेवल फ़ील्ड) एक ObjectId, String या 64-बिट पूर्णांक होना चाहिए. अन्य BSON टाइप काम नहीं करते. - खाली स्ट्रिंग ("") और 64-बिट 0 (0L) का इस्तेमाल नहीं किया जा सकता.
वैल्यू
- 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
चरणों का इस्तेमाल नहीं किया जा सकता. इस्तेमाल की जा सकने वाली स्टेज और ऑपरेटर की पूरी सूची देखने के लिए, कमांड सेक्शन देखें.$lookup
चरण में,_id
परforeignField
तय करने के अलावा और कुछ नहीं किया जा सकता.
लिखता है
update
याfindAndModify
की अपसर्ट सुविधा का इस्तेमाल करके, डॉलर के निशान ("$") से शुरू होने वाले नाम वाले दस्तावेज़ नहीं बनाए जा सकते.- पक्का करें कि आपकी कनेक्शन स्ट्रिंग में
retryWrites=false
शामिल हो. इसके अलावा, अपने ड्राइवर के हिसाब से सही तरीके का इस्तेमाल करें, ताकि यह पक्का किया जा सके कि ड्राइवर इस सुविधा का इस्तेमाल न करे. फिर से लिखने की सुविधा काम नहीं करती.
लेन-देन
स्नैपशॉट आइसोलेशन और सीरियलाइज़ेबल लेन-देन काम करते हैं.
डिफ़ॉल्ट रूप से, लेन-देन में स्नैपशॉट आइसोलेशन के साथ ऑप्टिमिस्टिक कॉन्करेंसी कंट्रोल का इस्तेमाल किया जाता है.
समस्या के बारे में जानकारी पढ़ना
MongoDB के साथ काम करने वाला Cloud Firestore,
snapshot
,majority
, औरlinearizable
रीड कंसर्न के साथ काम करता है. डिफ़ॉल्ट वैल्यूsnapshot
होती है, जिसका मतलब स्नैपशॉट आइसोलेशन होता है.अगर ऐप्लिकेशन को डेटा में लगातार बदलाव करने की ज़रूरत है और उसे राइट स्क्यू की गड़बड़ियों को रोकना है, तो
linearizable
का इस्तेमाल करें. अन्य वर्कलोड के लिए,snapshot
से परफ़ॉर्मेंस बेहतर हो सकती है और लेन-देन से जुड़ी समस्याएं कम हो सकती हैं.
समस्या के बारे में लिखें
- सिर्फ़
w: 'majority'
औरw: 1
राइट कंसर्न का इस्तेमाल किया जा सकता है.
पढ़ने से जुड़ी प्राथमिकता
- सिर्फ़
primary
,primaryPreferred
,primary_preferred
,secondary_preferred
, औरnearest
से जुड़ी समस्याओं को हल करने में मदद मिलती है.
इंडेक्स
- वाइल्डकार्ड इंडेक्स का इस्तेमाल नहीं किया जा सकता.
- MongoDB के साथ काम करने वाला Cloud Firestore,
_id
पर इंडेक्स अपने-आप नहीं बनाता. हालांकि, यह पक्का करता है कि किसी कलेक्शन में_id
की वैल्यू यूनीक हों. - मल्टी-की की सुविधा के बिना इंडेक्स, राइट ऑपरेशन के आधार पर अपने-आप मल्टी-की इंडेक्स में नहीं बदलते हैं. इंडेक्स बनाते समय, आपको मल्टी-की चालू करनी होगी. इस विकल्प को बदला नहीं जा सकता.
गड़बड़ियां
- Cloud Firestore with MongoDB compatibility और MongoDB के बीच, गड़बड़ी के कोड और मैसेज अलग-अलग हो सकते हैं.
निर्देश
यहां दी गई जानकारी से पता चलता है कि कुछ खास कमांड के लिए, अलग-अलग डिवाइसों पर अलग-अलग तरीके से काम किया जाता है.
- यहां दी गई टेबल में शामिल नहीं किए गए निर्देशों का इस्तेमाल नहीं किया जा सकता.
maxTimeMS
को ज़्यादातर कमांड में इस्तेमाल किया जा सकता है, लेकिन इसे अनदेखा भी किया जा सकता है.
क्वेरी और लिखता है
Command | ऐसे फ़ील्ड जिनका इस्तेमाल नहीं किया जा सकता |
---|---|
|
|
|
|
|
|
|
|
|
मिटाने के स्टेटमेंट में:
|
|
|
|
|
|
|
|
|
|
(कुछ नहीं) |
लेन-देन और सेशन
Command | ऐसे फ़ील्ड जिनका इस्तेमाल नहीं किया जा सकता |
---|---|
|
|
|
|
|
(कुछ नहीं) |
एडमिनिस्ट्रेशन
Command | ऐसे फ़ील्ड जिनका इस्तेमाल नहीं किया जा सकता | ज़रूरी जानकारी |
---|---|---|
|
|
अगर filter दिया गया है, तो इसकी वैल्यू खाली होनी चाहिए. |
|
|
अगर authorizedCollections दिया गया है, तो इसकी वैल्यू 'गलत' होनी चाहिए. |
|
|
|
|
|
यह कमांड कोई कार्रवाई नहीं करती है. अगर capped दिया गया है, तो इसकी वैल्यू false होनी चाहिए. |
आगे क्या करना है
- क्विकस्टार्ट: डेटाबेस बनाना और उससे कनेक्ट करना को चलाएं.
- इस्तेमाल की जा सकने वाली सुविधाओं की पूरी सूची देखने के लिए, MongoDB के साथ काम करने वाले डेटा टाइप, ड्राइवर, और सुविधाएं लेख पढ़ें.