登录
首页 >  Golang >  Go问答

使用 GoLang 的 mongodb 中的事务示例

来源:Golang技术栈

时间:2023-03-22 13:34:03 174浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《使用 GoLang 的 mongodb 中的事务示例》,主要内容是讲解golang等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我需要一个示例来使用 GoLang 在 MongoDB 中实现事务。

我正在为 mongodb 使用这个 golang 驱动程序

[https://github.com/mongodb/mongo-go-driver](https://github.com/mongodb/mongo- go-driver)

没有关于如何实现交易的明确文档。

谁能帮我?

正确答案

这可能会令人困惑。下面是一个简单的例子。

if session, err = client.StartSession(); err != nil {
    t.Fatal(err)
}
if err = session.StartTransaction(); err != nil {
    t.Fatal(err)
}
if err = mongo.WithSession(ctx, session, func(sc mongo.SessionContext) error {
    if result, err = collection.UpdateOne(sc, bson.M{"_id": id}, update); err != nil {
        t.Fatal(err)
    }
    if result.MatchedCount != 1 || result.ModifiedCount != 1 {
        t.Fatal("replace failed, expected 1 but got", result.MatchedCount)
    }

    if err = session.CommitTransaction(sc); err != nil {
        t.Fatal(err)
    }
    return nil
}); err != nil {
    t.Fatal(err)
}
session.EndSession(ctx)

您可以在此处查看完整[示例](https://github.com/simagix/mongo-go- examples/blob/master/examples/transaction_test.go)。

以上就是《使用 GoLang 的 mongodb 中的事务示例》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>