如何在Meteor项目中使用现有的MongoDB?

时间:2012-05-14 17:15:49

标签: meteor

假设有一个用于GUI客户端的运行MongoDB服务器(wxPython)一段时间。

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

8 个答案:

答案 0 :(得分:156)

使用环境变量MONGO_URL。 类似的东西:

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

your_db替换为meteor或您要使用的任何数据库。

答案 1 :(得分:14)

我们使用npm

  • 使用package.json创建npm init文件,如果您还没有。{/ p>

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

"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
  • 然后您可以使用npm run meteor
  • 启动 meteor

答案 2 :(得分:9)

the comments to danny's answer Tom Wijsman recommends修补软件包/ mongo-livedata / mongo_driver.js中,第21行。更好的地方在app / meteor / run.js,第460行。这样,环境变量仍然会被提取,例如在Heroku上运行Meteor时。只需将默认的硬编码mongodb://127.0.0.1更改为MongoDB服务器的位置。

答案 3 :(得分: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”。

答案 4 :(得分:2)

只需将数据复制到Meteor MongoDB数据库 - 没有理由尝试将Meteor挂钩到现有数据库并冒险覆盖事物。

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

如果您不熟悉MongoDB中的导入/导出,请参阅the documentation

答案 5 :(得分:0)

我所做的就是添加我的Digital ocean droplet服务器的IP,而不是localhost,它起作用了:

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,并将&#34; link&#34;你的2个容器,因此在同一个VM(服务器)上托管app和mongo。出于安全原因,您的mongoDB不应该可以从公共IP访问。

答案 6 :(得分:0)

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

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

答案 7 :(得分:-6)

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