如何从Meteor内部获取当前连接的MongoDB数据库的URL?

时间:2015-03-20 09:06:29

标签: javascript mongodb meteor

背景:我正在为生产准备一个Meteor应用,特别是我正在添加服务器日志记录。要执行此操作,我将winstonMongoDB plugin一起使用。这需要数据库的URL。这些数据库在生产和开发环境之间是不同的,所以我想以编程方式设置它。

我试图避免运行分支脚本来运行

# meteor mongo --url

我也无法在开发服务器上访问$ MONGO_URL(它似乎没有设置,例如在process.env.MONGO_URL中)

我希望有类似下面的内容,但我在文档中或通过Google找不到此内容。

Meteor.MongoDB.getURL(); 

很抱歉,如果这是非常明显的事情......感觉应该很容易。

2 个答案:

答案 0 :(得分:2)

这适用于服务器端。它需要Meteor 1.0.4+(我认为。最近添加了一些):

var collection = new Mongo.Collection("some_collection");

console.log(collection.rawCollection().db.options.url)

请记住,您可以拥有多个MongoDB(至少在集合级别,或者这至少是设计的方式),因此您需要查询集合的Mongo URL。

答案 1 :(得分:0)

我找到了答案。

正如问题所述,MONGO_URL环境变量未定义,但这似乎是我的IDE中的误解或错误。

当我记录process.env的值时,我看到MONGO_URL确实设置了,所以我已经使用了它。

简而言之:

process.env.MONGO_URL