如何在Meteor中连接外部MongoDB实例?

时间:2016-08-02 06:16:19

标签: mongodb meteor

我想了解如何连接到Meteor中的外部MongoDB实例。

我添加了这个环境

Meteor.startup(function () { 
process.env.MONGO_URL = 'mongodb://[UN]:PW]@[host]:[port]/meteorTest'
});

但数据仍来自本地数据库。

我想将所有集合从本地数据库移动到此外部数据库。我阅读了所有的教程,它都告诉我设置这个evn变量,但没有什么真正起作用。我如何测试它是否连接?

4 个答案:

答案 0 :(得分:18)

根据我自己的经验;我需要在启动meteorjs服务器应用程序之前设置环境变量。为此,您需要在调用meteor时在命令行上传递环境变量,或者为系统上运行meteor应用程序的配置文件预设环境。

所以你可以用这种命令启动你的应用程序:

MONGO_URL='mongodb://user:password@remote.domain.com:12345/' meteor

您还应该确保mongodb可以访问并且您的用户凭据是正确的!我假设您正在尝试使用远程mongodb实例在本地计算机上运行meteor。

在Windows上

您必须在meteor应用程序文件夹中创建批处理文件以调用环境变量。这里有一个例子:https://stackoverflow.com/a/29833177/1997579

答案 1 :(得分:6)

我不喜欢使用大的重复命令,我正在寻找一个解决方案,我将设置一个嵌入了某些东西的变量,所以每次我启动我的流星应用程序; MONGO_URL将自动设置为环境。所以这就是我所做的:

在package.json文件中,我将start参数替换为如下:

"scripts": {
    "start": "MONGO_URL=mongodb://username:password@host_url:portnumber/dbname meteor run"
  },

现在每次我想运行我的应用程序;我运行npm start而不是meteormeteor run

注意:这有一个缺点。如果将db凭据放入package.json文件并将此文件添加到版本控制中,则会公开您的db凭据。

答案 2 :(得分:0)

在命令提示符下运行:

 "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"

或 将此URL保存在项目文件夹中的run.sh文件中并运行meteor

答案 3 :(得分:0)

在 Windows 上,我在系统的环境变量中设置了 MONGO_URL,它对我来说效果很好。

我创建了一个新的环境变量,它的值为 MONGO_URL=mongodb://username:password@host_url:portnumber/dbname

在路径变量中,我添加了 %MONGO_URL%

然后在流星应用根文件夹中,我运行了 $meteor