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

问题描述 投票:6回答:3

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

我添加了这个环境

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

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

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

mongodb meteor
3个回答
18
投票

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

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

MONGO_URL='mongodb://user:[email protected]:12345/' meteor

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

在Windows上

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


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凭据。


0
投票

在命令提示符下运行它:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.