आप उल्का के साथ MongoDB से कैसे जुड़ सकते हैं?
परिदृश्य ए:अंतर्निहित डीबी का डिफ़ॉल्ट रूप से उपयोग करें
आपने जो किया उससे यह बहुत आसान है। जब आप meteor
चलाते हैं आप वास्तव में Meteor सर्वर के साथ एक DB प्रारंभ करते हैं, जहां Meteor पोर्ट 3000 पर और डेटाबेस 3001 पोर्ट पर सुनता है। Meteor ऐप पहले से ही पोर्ट 3001 पर इस डेटाबेस से जुड़ा है और meteor
नामक db का उपयोग करता है। . MongoInternals.RemoteCollectionDriver
. पर वापस जाने की कोई आवश्यकता नहीं है . बस उस कोड को हटा दें और चीजों को इसमें बदलें:
Boxes = new Mongo.Collection("boxes"); // use default MongoDB connection
परिदृश्य B:डिफ़ॉल्ट रूप से भिन्न DB का उपयोग करें
MONGO_URL
का उपयोग करना पर्यावरण चर आप उल्का सर्वर शुरू करते समय कनेक्शन स्ट्रिंग को मोंगोडीबी पर सेट कर सकते हैं। स्थानीय पोर्ट 3001 डेटाबेस या एक अनधिकृत कनेक्शन के बजाय आप निर्दिष्ट कर सकते हैं कि वास्तव में कहां और कैसे कनेक्ट करना है। अपना उल्का सर्वर इस तरह शुरू करें:
$ MONGO_URL=mongodb://user:[email protected]:27017/meteor meteor
आप user:[email protected]
यदि प्रमाणीकरण की आवश्यकता नहीं है तो कमांड का हिस्सा।
परिदृश्य C:उसी उल्का ऐप से एक सेकंड (तीसरा, आदि) DB से कनेक्ट करें
अब हमें MongoInternals.RemoteCollectionDriver
. का उपयोग करने की आवश्यकता है . यदि आप किसी अन्य डेटाबेस का उपयोग करना चाहते हैं जो उल्का सर्वर शुरू करने पर परिभाषित डिफ़ॉल्ट डीबी नहीं है तो आपको अपने दृष्टिकोण का उपयोग करना चाहिए।
var database = new MongoInternals.RemoteCollectionDriver('mongodb://user:[email protected]:27017/meteor');
var numberOfDocs = database.open('boxes').find().count();
बोनस:आपको MongoInternals
का उपयोग क्यों नहीं करना चाहिए? Mongo.Collection
. के साथ ?
जैसा कि दस्तावेज़ इंगित करते हैं
आपको किसी भी Mongo कनेक्शन को new Mongo.Collection()
. में पास नहीं करना चाहिए आदेश, लेकिन केवल एक अन्य उल्का उदाहरण के लिए एक कनेक्शन। इसका मतलब है, अगर आप DDP.connect
. का उपयोग करते हैं किसी भिन्न सर्वर से कनेक्ट करने के लिए आप अपने कोड का उपयोग कर सकते हैं - लेकिन आपको MongoInternals
को मिश्रित नहीं करना चाहिए Mongo.Collection
. के साथ - वे एक साथ अच्छा काम नहीं करते हैं।