假设有一个用于GUI客户端的运行MongoDB服务器(wxPython)一段时间。
我如何将我的新Meteor项目连接到已经存在的MongoDB ?
答案 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
答案 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”,它应该可以工作!