85

假设有一个 GUI 客户端(通过wxPython)正在运行一段时间的 MongoDB 服务器。

如何将我的新 Meteor 项目连接到我已经存在的 MongoDB

4

8 回答 8

157

使用环境变量 MONGO_URL。就像是:

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

替换your_dbmeteor或您要使用的任何数据库。

于 2012-10-21T09:35:30.277 回答
14

我们使用npm

  • 如果您还没有文件,请创建一个package.json文件。npm init

  • 在该文件中输入并修改以下行(替换所有<...>的):

"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
  • 然后你可以开始流星npm run meteor
于 2016-02-07T17:26:23.133 回答
9

对 danny 的回答的评论中,Tom Wijsman 建议修补 packages/mongo-livedata/mongo_driver.js,第 21 行。更好的地方是 app/meteor/run.js,第 460 行。这样,如果存在环境变量,仍然会被拾取,例如在 Heroku 上运行 Meteor 时。只需将默认硬编码的 mongodb://127.0.0.1 更改为 MongoDB 服务器的位置。

于 2012-11-13T14:34:39.180 回答
4

您可以使用 db.copyDatabase 来执行此操作,但需要注意的是存在错误并且您无法更新 Meteor 中的数据。见https://github.com/meteor/meteor/issues/61

如果您使用的是 Meteor 的开发版本,您可以通过启动 Meteor 应用程序从正在运行的 MongoDB 服务器传输数据,然后执行以下操作:

mongo --port 3002

这会将您连接到 Meteor 应用程序的 Mongo 服务器。现在像这样使用 db.copyDatabase :

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

这会将数据库 myappDatabase 从在 localhost 的标准端口上运行的 MongoDB 服务器复制到 Meteor 应用程序 Mongo 服务器。Meteor 应用程序使用的数据库名称是“meteor”。

于 2012-10-19T12:33:44.680 回答
2

只需将数据复制到 Meteor MongoDB 数据库 - 没有理由尝试将 Meteor 连接到现有数据库并冒险覆盖内容。

用于mongoexport单独转储您的集合,然后mongoimport将文件导入到meteorMeteor MongoDB 实例中命名的数据库中。Meteor MongoDB 实例在端口 3002 上运行,bind_address 为 127.0.0.1,数据文件位于 Meteor 项目子目录.meteor/local/db中。

如果您不熟悉 MongoDB 中的导入/导出,请参阅文档。

于 2012-05-15T03:01:22.857 回答
0

我所做的只是添加了我的数字海洋水滴服务器的 IP,而不是本地主机,它起作用了:

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

编辑:使用 MUP 部署您的流星项目:https ://github.com/zodern/meteor-up

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

Mup 使用 Docker,并将“链接”您的 2 个容器,从而将应用程序和 mongo 托管在同一个 VM(服务器)上。出于安全原因,不应从公共 IP 访问您的 mongoDB。

于 2017-04-15T16:42:32.583 回答
0

花了很多时间,发现它需要在 URL 周围加上引号:

export MONGO_URL='mongodb://localhost/meteor'
export MONGO_OPLOG_URL='op log url'
于 2020-10-21T13:38:10.563 回答
-6

您必须让您的应用程序在一个终端窗口中运行,然后打开另一个窗口并输入“meteor mongo”,它应该可以工作!

于 2015-09-07T11:47:39.330 回答