セッションデータをデータベースに格納するためにsessionstore npmモジュールを使用しています。Expressセッションストア:MongoError:_idのE11000重複キーエラーコレクション
var session = require('express-session');
var sessionstore = require('sessionstore');
app.use(session({
secret:appConfig.JWT_SECRET,
resave:false,
saveUninitialized:true,
store: sessionstore.createSessionStore({
type: 'mongodb',
host: 'localhost',
port: 27017,
dbName: 'MyDatabase',
collectionName: 'sessions',
timeout: 10000
}),
cookie: {
maxAge: 1000 * 60 * 60 // Milliseconds (3600000ms -> 60min)
}
}));
、私はこのエラーを取得しています:
MongoError: E11000 duplicate key error collection: myDatabase.sessions index: _id_ dup key: { : "Lz4SJIHaBfGFfNg3_ChNTkFnwKBLQDUN" }
at Function.MongoError.create (/home/user/public_html/projectName/server/node_modules/mongodb-core/lib/error.js:31:11)
at toError (/home/user/public_html/projectName/server/node_modules/mongodb/lib/utils.js:139:22)
at /home/user/public_html/projectName/server/node_modules/mongodb/lib/collection.js:1060:67
at /home/user/public_html/projectName/server/node_modules/mongodb-core/lib/connection/pool.js:461:18
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
同じIDを持つ文書を作成しないようにする方法。また、私はプロジェクトでMongooseを使用していません。これは、サーバーをクラッシュさせずにデータベースとのすべての接続を閉じ、ユーザーがログインできない(またはAPI応答がない)ために行うことができます。
私はSOやGithubについても同様の質問をしますが、それらはすべてmongooseまたはフィールド名の変更を指していますが、私の場合はそのようなものはありません。
助けてください。
はバグのように見えます。 '_id'以外のキーに使用する別のフィールドを設定しようとしましたか?何かを変更する前に、コレクションの内容を消去する必要があります。 –
'db.sessions.drop()'は動作しますか? (これより、古い問題:https://github.com/jdesboeufs/connect-mongo/issues/78) – Lissy
私は他のキーを追加していません。私はユーザー名と電子メールアドレスを保存しているデータオブジェクトです –