当前位置: 首页 > 面试题库 >

使用GoLang在mongodb中进行交易的示例

满才
2023-03-14
问题内容

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

我正在使用此golang驱动程序用于mongodb

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)

您可以在此处查看完整的示例。



 类似资料:
  • 问题内容: 我实际上发现了Spring,并且能够设置一些作业。现在,我想使用Hibernate / JPA将导入的数据保存在数据库中,并且不断出现此错误: 我看到问题出在交易上。这是我的和的春季java配置: 我正在使用JpaItemWriter将数据存储在数据库中: 这是导致异常的代码: 有什么想法可以解决这个问题吗? [编辑]我还要输入Job定义和step定义。我所有的Spring配置都是用J

  • 问题内容: 假设我有100万个对象需要保存到ElasticSearch。保存对象的要求之一是,只有在所有项目都保存完之后才能进行搜索- 否则结果(与保存对象的不同属性的计数和总和有关-以财务计算为准)是错的。 这是我当前必须保存对象的代码: 我如何一次保存2万个对象,但是仅在所有项目都保存后才“提交”事务?或者,如果我必须一次保存“所有对象”,我该怎么做? 问题答案: Elasticsearch没

  • 问题内容: 我没有提交就做了一些查询。然后应用程序被停止。 如何显示这些未清交易并提交或取消交易? 问题答案: 如何显示这些未清交易并提交或取消交易? 没有打开的事务,MySQL将在断开连接时回滚该事务。 您无法提交交易(IFAIK)。 您使用显示线程 参见:http : //dev.mysql.com/doc/refman/5.1/en/thread- information.html 这将无济

  • 我正在尝试用杜松子酒和戈尔姆酒制作API。现在我已经插入了一个API。这个API将在数据库中创建多个条目。我有这样的json体。数组的大小会有所不同。 这样,我就有了从url获取的其他参数- 现在我想在DB上创建多个条目[1,2],其中包含key1和key2的数据,如- 我陷入了困境,不知道如何阅读这个json并将数据保存在我的模式(struct)中,以创建多个条目,如- 请引导我找到一个可能的解

  • 本文向大家介绍在Golang中使用Redis的方法示例,包括了在Golang中使用Redis的方法示例的使用技巧和注意事项,需要的朋友参考一下 周五上班的主要任务是在公司老平台上用redis处理一个队列问题,顺便复习了一下redis操作的基础知识,回来后就想着在自己的博客demo里,用redis来优化一些使用场景,学习一下golang开发下redis的使用。 Redis简单介绍 简介 关于Redi

  • 问题内容: 我搜索并没有找到解决该问题的Go解决方案,无论是否使用,都没有,也没有在其他任何站点上。 假设我们在Gogo中建模了一个MongoDB集合: 我们希望根据某些条件对用户进行排序和列出,但是由于预期结果列表较长,因此已实现了分页。 为了实现对某些查询结果的分页,MongoDB和驱动程序包以和的形式内置支持,例如: 但是,如果页数增加,这将变得很慢,因为MongoDB不能仅“神奇地”跳到结