如何在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芒戈”,它应该工作!