【问题标题】:MongoDB StartSession failed commit and rollbackMongoDB StartSession 提交和回滚失败
【发布时间】:2021-09-15 09:56:06
【问题描述】:

我正在使用 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 并运行

【问题讨论】:

    标签: laravel mongodb laravel-session


    【解决方案1】:

    很可能您连接到单个 mongoDB 实例。 您需要连接到版本 >= 4.0 的副本集以支持事务+会话。对于分片集群,您至少需要版本 >= 4.2 才能支持事务+会话。 对于开发/测试,您可以将您的单个 mongodb 部署至少转换为具有单个 PRIMARY for mongodb version>=4.0 的副本集。

    【讨论】:

    • 我没听懂。你能解释一下吗
    • 请提供更多关于您的部署的详细信息作为 mongodb 版本的开始,如果它是独立的,replicaSet 或分片集群等?
    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 2020-01-31
    • 2013-06-07
    • 1970-01-01
    • 2014-08-20
    相关资源
    最近更新 更多