Jak wykorzystać istniejący MongoDB w projekcie Meteor?

Załóżmy, że istnieje uruchomiony serwer MongoDB dla klienta GUI (przez wxPython) przez jakiś czas.

Jak mogę połączyć mój nowy projekt Meteor z moim już istniejącym MongoDB ?

 83
Author: mitchken, 2012-05-14

7 answers

Użyj zmiennej środowiskowej MONGO_URL. Coś w stylu:

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

Zastąp your_db na meteor lub jakikolwiek db, którego chcesz użyć.

 152
Author: Dror,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-28 23:31:12

Używamy npm:

  • Utwórz plik package.json za pomocą npm init, Jeśli jeszcze go nie masz.

  • Wprowadź i zmodyfikuj następujący wiersz w tym pliku (zastępując wszystkie <...> ' s):

"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
  • Możesz następnie uruchomić meteor za pomocą tylko npm run meteor
 14
Author: malix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-28 23:36:54

W komentarze do odpowiedzi Tom Wijsman poleca łatanie pakietów / mongo-livedata / mongo_driver.js, linia 21. Lepsze miejsce jest w app / meteor / run.js, linia 460. W ten sposób zmienna środowiskowa jest nadal pobierana, jeśli jest obecna, na przykład podczas uruchamiania Meteor na Heroku. Po prostu zmień domyślną wersję MongoDB://127.0.0.1 na lokalizację serwera MongoDB.

 9
Author: David Wihl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:47

Możesz użyć db.copyDatabase to zrobić, z zastrzeżeniem, że jest błąd i nie można zaktualizować danych w Meteor. Zobacz https://github.com/meteor/meteor/issues/61

Jeśli używasz wersji rozwojowej Meteor, możesz przesyłać dane z działającego serwera MongoDB, uruchamiając aplikację Meteor, a następnie wykonując:

mongo --port 3002

Połączy cię to z serwerem Mongo aplikacji Meteor. Teraz użyj db.copyDatabase like this:

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

To skopiuje bazę danych myappDatabase z serwera MongoDB działającego na standardowym porcie na localhost, do serwera Meteor app Mongo. Nazwa bazy danych, której używa aplikacja Meteor, to "meteor".

 4
Author: Josh Wulf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-19 12:33:44

Wystarczy skopiować dane do bazy danych Meteor MongoDB - nie ma powodu, aby próbować podłączyć Meteor do istniejącej bazy danych i ryzykować nadpisanie rzeczy.

Użyj mongoexport, aby zrzucić swoje kolekcje indywidualnie, a następnie mongoimport zaimportować pliki do bazy danych o nazwie meteor w instancji Meteor MongoDB. Instancja Meteor MongoDB działa na porcie 3002 z bind_address 127.0.0.1, a Pliki Danych znajdują się w podkatalogu Meteor project .meteor/local/db.

Zobacz dokumentację jeśli nie zaznajomiony z importem/eksportem w MongoDB.

 2
Author: danny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-11 08:52:02

Jedyne co zrobiłem to dodanie IP mojego serwera Digital ocean droplet zamiast localhost i zadziałało:

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

Edytuj: użyj MUP, aby wdrożyć swoje projekty meteor: https://github.com/zodern/meteor-up

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

Mup używa Dockera i "łączy" twoje kontenery 2, tym samym hostując zarówno aplikację, jak i mongo na tym samym serwerze VM (vm). Twój mongoDB nie powinien być dostępny z publicznego adresu IP ze względów bezpieczeństwa.

 0
Author: Milean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-08 11:48:31

Musisz utrzymać swoją aplikację działającą w jednym oknie terminala, a następnie otworzyć inne i wpisać "meteor mongo" i powinno działać!

 -5
Author: pablo escobrah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-07 11:47:39