我能够连接到我的主数据库没有问题,但是当我尝试连接到我的副本集时,我得到了 TTL 错误。我已尽力包含所有相关的代码示例,但请询问您是否需要查看未包含的内容。这让我很生气。数据库位于 mongoHQ。
所以,问题:
- 我可以连接到我的主集(workingDB)
- 我无法连接到我的副本集(failingDB)
- 尝试连接两者时我无法连接(mongoHQ)。
代码示例
mongoHQ = "mongodb://<user>:<password>@candidate
.14.mongolayer.com:10120/dbName,mongodb://<user>:<password>@candidate
.15.mongolayer.com:10120"
failingDB = "mongodb://<user>:<password>@candidate
.14.mongolayer.com:10120/dbName"
workingDB = "mongodb://<user>:<password>@candidate
.15.mongolayer.com:10120/dbName"
# DB Options
opts =
mongos: true
server:
auto_reconnect: true
# Connect to DB
mongoose.connect mongoHQ, opts
# express/mongo session storage
app.use express.session(
secret: "Secrets are for children"
cookie:
maxAge: process.env.SESSION_TTL * 3600000
httpOnly: false
store: new mongoStore(
url: mongoHQ
collection: "sessions"
, ->
console.log "We're connected to the session store"
return
)
)
# Error: Error setting TTL index on collection : sessions
# * Connecting to "workingDB" works as expected.
# * Connecting to "failingDB" throws the same TTL Error
# * candidate.14 is the primary set, candidate.15 is the replica set