मैं किसी उल्का परियोजना में एक मौजूदा MongoDB का उपयोग कैसे करूं?


84

मान लीजिए कि GUI क्लाइंट ( wxPython द्वारा ) थोड़ी देर के लिए एक रनिंग MongoDB सर्वर है ।

मैं अपनी नई Meteor परियोजना को अपने पहले से मौजूद MongoDB से कैसे जोड़ सकता हूं ?


Dror ( stackoverflow.com/users/460278/dror ) का नीचे सही उत्तर है: stackoverflow.com/a/12996674/1114274
माइक ग्राफ

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

"आप किसी भी समय उत्तर को स्वीकार कर सकते हैं, या केवल उत्तर को स्वीकार नहीं कर सकते हैं।" meta.stackexchange.com/a/5235/191226
माइक ग्राफ

1
मुझे यह इंगित करने के लिए बहुत बहुत धन्यवाद। मैं अब और अधिक आश्वस्त हूं।
ड्रेक गुआन

जवाबों:


156

पर्यावरण चर MONGO_URL का उपयोग करें। कुछ इस तरह:

export MONGO_URL=mongodb://localhost:27017/your_db

के your_dbसाथ बदलें meteorया जो भी db आप उपयोग करना चाहते हैं।


4
मैं फँस गया हूँ। क्या आप बता सकते हैं कि अपने_db को "उल्का" से कैसे बदलें
सुरजिथ एसएम

3
ध्यान दें कि यह उल्कापिंड को तैनात करने पर ठेस पर काम नहीं करेगा - देखें stackoverflow.com/questions/21971036/…
maxko87

2
@SurjithSM export MONGO_URL=mongodb://localhost:27017/my_database_nameनाम के डेटाबेस में डेटा डालेगा my_database_name। उसका मतलब था कि अगर आप चाहें, तो आप कर सकते हैं export MONGO_URL=mongodb://localhost:27017/meteor। सोचा था कि मैं सलाह दूंगा कि आपके डेटाबेस का नाम आपके प्रोजेक्ट के समान हो।
बेंजामिन क्राउज़ियर

1
क्या इसे कुछ कॉन्फ़िगरेशन फ़ाइल के साथ किया जा सकता है?
Settings.json के

1
इसने मेरे स्थानीय ऐप को बाहर निकाल दिया।
डेबोरा

14

हम उपयोग करते हैं npm:

  • यदि आपके पास पहले से कोई package.jsonफ़ाइल नहीं है npm init, तो एक फ़ाइल बनाएं ।

  • उस फ़ाइल में निम्न पंक्ति दर्ज करें और संशोधित करें (सभी <...>'s को प्रतिस्थापित करते हुए ):

"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
  • आप बस के साथ उल्का शुरू कर सकते हैंnpm run meteor

'MONGO_URL' को आंतरिक या बाहरी आदेश के रूप में मान्यता नहीं है
अब्दुल हमीद

1
यह एक वातावरण चर है, तो सुनिश्चित करें कि वहाँ के आसपास = चिह्न स्पेस नहीं
malix

9

में डैनी के जवाब टॉम Wijsman करने के लिए टिप्पणी की सिफारिश संकुल पैचिंग / मोंगो-livedata / mongo_driver.js, लाइन 21. एक बेहतर जगह एप्लिकेशन / उल्का / run.js में है, लाइन 460 इस तरह वातावरण चर अभी भी मौजूद होने उठाया जाता है , जैसे जब हरकू पर उल्का चल रहा हो। बस अपने MongoDB सर्वर के स्थान पर डिफ़ॉल्ट हार्डकोड mongodb: //127.0.0.1 बदलें।


4

आप ऐसा करने के लिए db.copyDatabase का उपयोग कर सकते हैं, एक चेतावनी के साथ कि बग है और आप Metoror में डेटा को अपडेट नहीं कर सकते। Https://github.com/meteor/meteor/issues/61 देखें

यदि आप Meteor के विकास संस्करण का उपयोग कर रहे हैं, तो आप अपने Meteor ऐप को शुरू करके एक चल रहे MongoDB सर्वर से डेटा स्थानांतरित कर सकते हैं, फिर:

mongo --port 3002

यह आपको Meteor ऐप के Mongo सर्वर से कनेक्ट करेगा। अब इस तरह से db.copyDatabase का उपयोग करें:

db.copyDatabase('myappDatabase', 'meteor', 'localhost');

यह डेटाबेस myappDatabase को MongeDB पर मानक पोर्ट पर चल रहे MongoDB सर्वर से Meteor ऐप Mongo सर्वर पर कॉपी करेगा। उल्का ऐप का उपयोग करने वाले डेटाबेस का नाम 'उल्का' है।


2

बस Meteor MongoDB डेटाबेस में डेटा को कॉपी करें - Meteor को मौजूदा डेटाबेस तक हुक करने का प्रयास करने का कोई कारण नहीं और राइटिंग चीजों को जोखिम में डालें।

mongoexportअपने संग्रह को व्यक्तिगत रूप से डंप करने के लिए उपयोग करें , फिर mongoimportफ़ाइलों को meteorउल्‍लेखित डेटाबेस में Meteor MongoDB उदाहरण में आयात करें । Meteor MongoDB उदाहरण bind_address 127.0.0.1 के साथ पोर्ट 3002 पर चलता है, और डेटा फ़ाइलें Meteor प्रोजेक्ट उपनिर्देशिका में हैं .meteor/local/db

यदि आप MongoDB में आयात / निर्यात से परिचित नहीं हैं तो दस्तावेज़ देखें ।


क्या इसका मतलब यह है कि हमें दूसरे तरीकों से होस्टिंग के बजाय उल्का की मेजबानी करना चाहिए?
ड्रेक गुआन

2
@ ड्रेक: जब तक आप अपने डेटाबेस के साथ काम करने के लिए उल्का को समायोजित नहीं कर सकते। app/lib/mongo_runner.jsयह तय करता है कि इसे कैसे लॉन्च किया जाए (आपको लॉन्च कोड की आवश्यकता भी नहीं हो सकती है, इस प्रकार इसे अक्षम करने का तरीका देखें)। इसका कनेक्शन अंदर से प्रतीत होता है packages/mongo-livedata/mongo_driver.js, मुझे लगता है कि आप बस लाइन 21 पर url पैरामीटर बदल सकते हैं। यदि आप इसका मूल्य जानना चाहते हैं, तो उससे console.log(url);पहले लाइन पर डालें , उल्का को फिर से चालू करें और अपने उल्का आउटपुट को करीब से देखें। सुनिश्चित करें कि आप वास्तव में इसे ट्रिगर करने के लिए अपने ऐप में एक बार उल्का कॉल करते हैं ...
तमारा विज्समैन

@ ड्रेक: यदि आप चाहते हैं कि मैं अपनी टिप्पणी को उत्तर के रूप में रखूं (यदि यह आपके लिए काम करता है), तो कृपया मुझे बताएं।
तमारा विज्समैन

@TomWijsman: मैंने कोशिश की console.log(url);और जानकारी मिली! मैं आपको सुझाव दूंगा कि इसे एक काम के रूप में पूरा करने के लिए जवाब देने का कारण मुझे विश्वास है कि यह समुदाय को मदद प्रदान करता है, या कम से कम, मेरे जैसे लोग उल्का के साथ अभी तक परिचित नहीं हैं ~
ड्रेक गुआन

निर्यात / आयात आदेशों के बजाय, डेटा को कॉपी और पेस्ट करने के लिए mongochef का उपयोग करना बहुत आसान है। 3t.io/mongochef
अधिकतम होजेस

0

मैंने केवल स्थानीयहोस्ट के बजाय अपने डिजिटल महासागर ड्रॉपलेट सर्वर का आईपी जोड़ा था, और इसने काम किया:

env: {
      ROOT_URL: 'http://yourdomain.com',
      MONGO_URL: 'mongodb://104.236.24.66:27017/meteor',
      PORT: 3002,
    },

EDIT: अपने उल्कापिंड परियोजनाओं को तैनात करने के लिए MUP का उपयोग करें: https://github.com/zodern/meteor-up

env: {
      ROOT_URL: 'https://www.example.com',
      MONGO_URL: 'mongodb://localhost/meteor',
    },

Mup Docker का उपयोग करता है, और आपके 2 कंटेनरों को "लिंक" करेगा, इस प्रकार एक ही VM (सर्वर) पर ऐप और मोंगो दोनों को होस्ट करेगा। आपके mongoDB को सार्वजनिक IP से सुरक्षा कारणों से सुलभ नहीं होना चाहिए।


आपने इसे कहाँ जोड़ा?
गौरव आर्य

यह वास्तव में बुरा है mongoDB के लिए अपने वीएम के सार्वजनिक आईपी का उपयोग करने के लिए, स्थानीयता का उपयोग करने के लिए मेरे जवाब को अपडेट करने के लिए जा रहा है।
मिलन

0

बहुत समय बिताया और पता चला कि URL के आसपास उद्धरणों की आवश्यकता है:

export MONGO_URL='mongodb://localhost/meteor'
export MONGO_OPLOG_URL='op log url'

-6

आपको अपने ऐप को एक टर्मिनल विंडो में चालू रखना है, फिर दूसरा खोलें और "उल्का मोंगो" टाइप करें और इसे काम करना चाहिए!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.