MongoDB: セッションのトークンを管理してもらう

 MongoDBには、期限切れとなったドキュメントを自動で削除してくれる機能がある。このブログではDBにMongoDBを使っており、期限切れのセッショントークンはこの機能を利用して削除している。

 sessionというコレクションにトークンデータを保存する。保存されるドキュメントのデータとしてトークン文字列token、作成日時createdAtがあるとする。このコレクションにドキュメントが保存された場合に、一定時間後にドキュメントを削除したい。下記のようにインデックスを作る。
db.session.createIndex( { "createdAt": 1 }, { expireAfterSeconds: XXX } )

 これでXXX秒後にコレクションsession内のドキュメントは自動で削除される。ただし期限が切れて直ちに消えるわけではない。バックグラウンドタスクが60秒ごとに走っているので、このタスクの対象になったタイミングで処理される。

https://docs.mongodb.com/manual/core/index-ttl/
comment: 0