MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

क्या उल्का सीधे MongoDB डेटाबेस में बाहरी रूप से अपडेट किए गए डेटा को सही ढंग से संभाल सकता है?

उल्का को बाहरी mongo डेटाबेस से कनेक्ट करने के लिए कॉन्फ़िगर किया गया है . आपने मोंगो को स्थानीय विकास ऐप पर पैक किया है लेकिन यह केवल आराम और आसान एकीकरण के लिए है।

उत्पादन में आपको हमेशा MONGO_URL का उपयोग करके उल्का को अपने चल रहे Mongo उदाहरण से जोड़ना होगा पर्यावरण चर

बोनस:आप MONGO_URL . सेट कर सकते हैं देव मोड में भी एक विशिष्ट डीबी से कनेक्ट करने के लिए देव मोड में। ध्यान रखें कि आप इस डीबी पर सब कुछ सीआरयूडी कर सकते हैं, सावधानी से उपयोग करें।

हुड के तहत उल्का नोड मोंगो चालक का उपयोग करता है। आप मूल रूप से इस ड्राइवर के सभी एपीआई का उपयोग करने में सक्षम हैं (यह पोस्ट देखें देशी मोंगो विधियों को कॉल करने के तरीके के विवरण के लिए)

उल्का के प्रकाशन / सदस्यता प्रणाली के साथ आप मूल रूप से नियंत्रित करते हैं कि क्लाइंट को कौन सा डेटा प्रकाशित किया जाता है। जब भी डेटा बदलता है (ऑब्जर्वर पैटर्न के समान) प्रकाशन चल रहे हैं।

यदि आपके सभी क्लाइंट किसी संग्रह के डेटा की सदस्यता लेते हैं, तो संग्रह अपडेट होने के बाद उन्हें अपडेट प्राप्त होंगे। और अब आपकी सर्वाधिक वांछित विशेषता पर आ रहा है:यह तब भी काम करता है जब यह डेटा किसी बाहरी स्रोत द्वारा अपडेट किया जाता है।

यह बहुत तेजी से अद्यतन अंतराल के साथ भी काम करता है। मैंने हाल ही में एक प्रोजेक्ट पर काम किया जहां मोंगो-डीबी संग्रह पर पाइथन के माध्यम से भारी मात्रा में डेटा अपडेट किया गया है। उल्का ऐप ने इसे सुना और ग्राहकों को "रीयलटाइम" (या जिसे उपयोगकर्ता वास्तविक समय के रूप में समझते हैं) में डेटा प्रदर्शित करते हैं।

हालांकि, कुछ कमियां हैं और उन्हें पहले से जान लेना अच्छा है।

  1. उल्का _id . के साथ दस्तावेज़ बनाता है प्रकार की स्ट्रिंग और नहीं Mongo.ObjectID . हालांकि यह इसे पढ़ने और लिखने में सक्षम है यदि आप इसका सही उपयोग करते हैं

  2. उल्का संग्रह को अपने API से लपेटता है जो संग्रह को अपने fibers . के साथ सर्वोत्तम रूप से एकीकृत करता है आधारित वातावरण। यदि आप कार्यक्षमता से परे उपयोग करना चाहते हैं तो कृपया यहां पढ़ें और यहां

  3. लौटाए गए कर्सर थोड़ा अलग व्यवहार करें, लेकिन कलेक्शंस की तरह, यदि आप rawCollection से कर्सर प्राप्त करते हैं, तो सभी नेटिव फंक्शनालिटीज भी उपलब्ध हैं।

  4. अपने संग्रह पर आपके द्वारा उपयोग किए जाने वाले डेटा प्रकारों की दोबारा जांच करें। उदाहरण के लिए समान दिनांक प्रकारों (जैसे ISODate) के साथ चिपके रहें ताकि अपडेट के बाद कोई अनपेक्षित त्रुटि न हो। mongoose . का एक उल्का प्रतिरूप भी है नाम दिया गया simpl-schema (npm पैकेज ) जो आपके संग्रह पर संरचना बनाए रखने का एक अच्छा तरीका है।

संक्षेप में, यदि आप अधिकांश उल्का गाइड और एपीआई डॉक्स पर विचार करते हैं तो आपको एक अच्छे रास्ते पर होना चाहिए क्योंकि बाहरी रूप से अपडेट किए गए संग्रह का एकीकरण आमतौर पर बहुत अच्छी तरह से चलता है और यह ज्यादातर इसे चलाने के लिए पब/उप सिस्टम को समझने के बारे में है।

संपादित करें:

हाँ यह करता है लेकिन आपको एक अलग प्रश्न के बारे में पता होना चाहिए। यदि (बाहरी रूप से बनाए गए) दस्तावेज़ का निम्न मान है:

{ "_id" : ObjectId("4ecc05e55dd98a436ddcc47c") }

फिर आपको अपनी (उल्का) क्वेरी को

. से बदलना होगा
collection.findOne("4ecc05e55dd98a436ddcc47c") // returns undefined

करने के लिए

collection.findOne({ "_id" : new Mongo.ObjectID("4ecc05e55dd98a436ddcc47c") }) // returns { _id: ObjectID { _str: '4ecc05e55dd98a436ddcc47c' } }

दस्तावेज़ बनाने के लिए एक ही पैटर्न काम करता है। इसके बजाय

collection.insert({ foo:'bar' })

आप एक नव निर्मित ऑब्जेक्ट आईडी पास करते हैं:

collection.insert({ foo:'bar', _id: new Mongo.ObjectID() })

यदि आप उल्का में उपरोक्त विधि से दस्तावेज़ बनाते हैं, तो आपको _id के बारे में चिंता करने की आवश्यकता नहीं है एक स्ट्रिंग होने के नाते।

इसके अलावा दस्तावेज़ वैसे ही हैं जैसे उन्हें होने चाहिए (देखें डेटा फ़ॉर्मैट ब्रिज ) हालांकि, अगर आपको कोई अपवाद मिलता है जिसका उल्लेख यहां नहीं किया गया है, तो बेझिझक टिप्पणी करें क्योंकि यह अन्य उपयोगकर्ताओं के लिए भी महत्वपूर्ण हो सकता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. अपने व्यवसाय के लिए सर्वश्रेष्ठ MongoDB होस्टिंग कैसे चुनें?

  2. MongoDb स्ट्रिंग से महीने और साल के आधार पर समूह कैसे करें

  3. प्रमुख मानों की एक साधारण सरणी के लिए 'ऑब्जेक्ट्स की सरणी' को मैप करें

  4. नेवला - ObjectId की एक सरणी पर पॉप्युलेट का उपयोग करना

  5. नोड जे एस नेवला आबाद सीमा