プライマリ DB には問題なく接続できますが、レプリカ セットに接続しようとすると TTL エラーが発生します。関連するすべてのコード例を含めるように最善を尽くしましたが、含まれていないものを見る必要がある場合はお尋ねください. これは私をバナナに駆り立てています。DB は 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