如何解决MongoDB StartSession 提交和回滚失败
我正在使用 Laravel 框架并使用 MongoDB。所以我需要提交并回滚集合保存,但我收到以下错误响应。
服务器不支持会话
我的 MongoDB 安装不支持会话吗?如果没有,我如何启用会话?
$session = DB::getMongoClient()->startSession();
$session->startTransaction();
try {
// Query
$lead = Leads::create($data);
$session->commitTransaction();
} catch (\Exception $e) {
$session->abortTransaction();
}
这是我使用的Mongodb版本 mongodb-win32-x86_64-2008plus-ssl-3.4.24-3-g78e64a697a 刚刚复制到 bin 并运行
解决方法
很可能您连接到单个 mongoDB 实例。 您需要连接到版本>= 4.0 的replicaSet 以支持事务+会话。对于分片集群,您至少需要版本 >= 4.2 才能支持事务+会话。 对于开发/测试,您至少可以将单个 mongodb 部署转换为带有单个 PRIMARY 的 replicaSet,mongodb 版本>=4.0。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。