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

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

我怎样才能将我的新Meteor项目连接到我现有的MongoDB

使用环境variablesMONGO_URL。 就像是:

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

meteor或任何你想使用的数据库replaceyour_db

我们使用npm

  • npm init创build一个package.json文件,如果你还没有。

  • input并修改该文件中的以下行(replace所有<...> ):

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

在对danny的回答的评论中,Tom Wijsmanbuild议修补软件包/ mongo-livedata / mongo_driver.js,第21行。一个更好的地方是在app / meteor / run.js,第460行。这样环境variables仍然被拾取比如在Heroku上运行Meteor。 只需将默认的硬编码的mongodb://127.0.0.1更改为MongoDB服务器的位置即可。

您可以使用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从本地主机上的标准端口上运行的MongoDB服务器复制到Meteor应用程序Mongo服务器。 Meteor应用程序使用的数据库名称是“meteor”。

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

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

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

我所做的只是添加我的数字海洋液滴服务器的IP,而不是本地主机,它的工作原理:

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

你必须保持你的应用程序运行在一个terminal窗口,然后打开另一个,input“meteor芒戈”,它应该工作!