Как использовать существующий MongoDB в проекте Meteor?

Скажем, есть сервер MongoDB для GUI-клиента (wxPython) некоторое время.

Как я могу подключить свой новый проект Meteor к уже существующему MongoDB?

Ответ 1

Используйте переменную окружения MONGO_URL. Что-то вроде:

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

Замените your_db на meteor или любой другой db, который вы хотите использовать.

Ответ 2

Мы используем npm:

  • Создайте файл package.json с npm init, если у вас его еще нет.

  • Введите и измените следующую строку в этом файле (заменив все <...>):

"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
  • Затем вы можете запустить метеор с помощью npm run meteor

Ответ 3

В комментарии к данни ответят Том Вейсман рекомендует патч-пакеты/mongo-livingata/mongo_driver.js, строка 21. Лучшее место в приложении/метеоре/пробеге .js, строка 460. Таким образом, переменная окружения по-прежнему сохраняется, если она присутствует, например, при запуске Meteor на Heroku. Просто измените по умолчанию hardcoded mongodb://127.0.0.1 на местоположение вашего сервера MongoDB.

Ответ 4

Вы можете использовать db.copyDatabase для этого, с оговоркой, что есть ошибка, и вы не можете обновлять данные в Meteor. См. https://github.com/meteor/meteor/issues/61

Если вы используете версию Meteor для разработки, вы можете перенести данные с работающего сервера MongoDB, запустив приложение Meteor, а затем выполните:

mongo --port 3002

Это приведет вас к серверу Meteor app Mongo. Теперь используйте db.copyDatabase следующим образом:

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

Это скопирует базу данных myappDatabase с сервера MongoDB, работающего на стандартном порту на localhost, на сервер Meteor приложения Mongo. Имя базы данных, которое использует приложение Meteor, - "метеорит".

Ответ 5

Просто скопируйте данные в базу данных Meteor MongoDB - нет причин пытаться подключить Meteor к существующей базе данных и рискнуть перезаписывать вещи.

Используйте mongoexport, чтобы сбрасывать ваши коллекции отдельно, а затем mongoimport, чтобы импортировать файлы в базу данных с именем meteor в экземпляре Meteor MongoDB. Экземпляр Meteor MongoDB работает на порту 3002 с bind_address 127.0.0.1, а файлы данных находятся в подкаталоге проекта Meteor .meteor/local/db.

Смотрите документацию, если вы не знакомы с импортом/экспортом в MongoDB.

Ответ 6

Все, что я сделал, это добавить IP-адрес моего цифрового капель-сервера, а не localhost, и это сработало:

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 контейнера, таким образом размещая как приложение, так и mongo на той же виртуальной машине (сервере). Из-за соображений безопасности ваш mongoDB не должен быть доступен из общедоступного IP-адреса.

Ответ 7

Вам нужно сохранить приложение в одном окне терминала, затем открыть другое и набрать "meteor mongo", и оно должно работать!