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

rah*_* cp 7 mongodb meteor

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

我添加了这个环境

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

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

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

小智 18

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

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

MONGO_URL='mongodb://user:password@remote.domain.com:12345/' meteor
Run Code Online (Sandbox Code Playgroud)

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

在Windows上

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


Abd*_*dul 5

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

在package.json文件中,我替换了start参数,如下所示:

"scripts": {
    "start": "MONGO_URL=mongodb://username:password@host_url:portnumber/dbname meteor run"
  },
Run Code Online (Sandbox Code Playgroud)

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

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