这会帮助你


ctx := context.Background()

client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost:27017"))

if err != nil {

    panic(err)

}


db := client.Database("testdb")

defer db.Client().Disconnect(ctx)

col := db.Collection("testcol")


// transaction

err = db.Client().UseSession(ctx, func(sessionContext mongo.SessionContext) error {

    err := sessionContext.StartTransaction()

    if err != nil {

        return err

    }


    _, err = col.InsertOne(sessionContext, bson.M{"_id": "1", "name": "berry"})

    if err != nil {

        return err

    }


    _, err = col.InsertOne(sessionContext, bson.M{"_id": "2", "name": "gucci"})

    if err != nil {

        sessionContext.AbortTransaction(sessionContext)

        return err

    }

    if err = session.CommitTransaction(sessionContext); err != nil {

        return err

    }

    return nil

})