0

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

4

1 回答 1

0

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

于 2021-07-04T20:20:39.737 回答