You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jenssegers/mongodb时sessions集合出现重复键错误的排查与解决

问题原因
  1. Session驱动配置错误:未切换到MongoDB专用的Session驱动,仍使用Laravel默认的database或file驱动。这会导致Laravel用SQL数据库的逻辑处理MongoDB的sessions集合,更新Session时错误执行插入操作,触发id字段的唯一索引冲突。
  2. 默认SQL迁移适配问题:执行了Laravel原生的SQL迁移(包括sessions表迁移),这些迁移生成的MongoDB集合结构与jenssegers/mongodb扩展预期的Session集合结构不匹配,引发Session更新逻辑异常。
解决步骤

1. 修正Session驱动配置

打开config/session.php,将driver项修改为mongodb:

'driver' => env('SESSION_DRIVER', 'mongodb'),

同时在.env文件中同步配置:

SESSION_DRIVER=mongodb

2. 删除不兼容的sessions集合

通过MongoDB Compass或命令行删除MngProducts库下的sessions集合——jenssegers/mongodb扩展会自动创建适配的Session集合,无需手动迁移。

3. 验证Session模型配置(可选)

检查config/session.php中是否指定了MongoDB的Session模型,若没有则添加:

'model' => Jenssegers\Mongodb\Session\Session::class,

4. 清除配置缓存

执行以下命令让新配置生效:

php artisan config:clear
php artisan cache:clear

完成以上操作后,再次访问页面即可解决重复键错误问题。

内容的提问来源于stack exchange,提问作者mstdmstd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:06:26