0

プライマリ 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
4

2 に答える 2

-1

URI のレプリカ セットへの参照を削除するだけで、問題を解決できました。

mongoHQ = "mongodb://<user>:<password>@candidate.15.mongolayer.com:10120/dbName";
于 2014-10-01T13:09:08.423 に答える