【发布时间】:2014-10-25 02:11:19
【问题描述】:
我有一个在 heroku 上运行的 node.js 应用程序。我正在尝试将我的 mongodb 模块更新为“~2.0.3”。在我当地的开发者中。环境一切正常。但是,当我将其部署到 Heroku 时,我得到一个“必须设置副本集参数”错误,该错误在早期版本的 mongodb 模块中没有触发。我不知道如何去做。特别是,我不知道在哪里可以找到该副本集的名称。
这是显示问题的节点 REPL 会话的记录:
$ heroku run node --app my-app
Running `node` attached to terminal... up, run.8299
>var mongo = require('mongodb');
undefined
> var a = {}
undefined
> process.env.MONGOLAB_URI
'mongodb://UUUUU:PPPPP.mongolab.com:45970/heroku_appNNNNNNN'
> mongo.MongoClient.connect(process.env.MONGOLAB_URI, function (err, db) {
a.err = err; a.db = db; console.log('CALLED'); });
undefined
> CALLED
undefined
> a
{ err:
{ [MongoError: replicaSet parameter must be set]
name: 'MongoError',
message: 'replicaSet parameter must be set' },
db: null }
>
还有一件事:当我通过 Web 界面访问数据库时,我只看到两个系统集合:system.indexes 和 system.users。据我所知,这表明我的数据库不是副本集的一部分,这使整个事情变得很奇怪。
【问题讨论】:
-
如果你可以通过 mongo shell 连接到 mongod 实例,试试
rs.status()。副本集名称在返回的 JSON 对象中。 -
+1 用于提出问题、回答问题并链接到您的拉取请求!