gpt4 book ai didi

Laravel mongodb 事务不回滚

转载 作者:行者123 更新时间:2023-12-03 15:59:31 24 4
gpt4 key购买 nike

我需要在 laravel-5.8 中使用 mongodb 上的事务。我正在使用 jenssegers-laravel-mongodb 并在代码中使用如下代码片段,但当其中一个查询失败时它不会回滚。

$session = MongoDB::startSession();
$session->startTransaction();
try {
Player::document()->update($updates, ['session' => $session]);
$session->commitTransaction();
return true;
} catch (\Exception $e) {
$session->abortTransaction();
return false;
}

据我所知,这个包不支持事务。我迫切需要在我的代码中支持事务。你能告诉我该怎么做吗?

最佳答案

不要使用 MongoDb 类,而是尝试使用 Laravel 的 DB 类,手动更改要连接的数据库驱动程序并运行数据库事务命令,如下所示


\DB::connection(config('database.connections.mongodb'));
\DB::beginTransaction();

try {
Player::document()->update($updates, ['session' => $session]);
\DB::commit();
return true;
} catch (\Exception $e) {
\DB::rollback();
return false;
}

关于Laravel mongodb 事务不回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58499778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com