- update mongo

master v1.0.47
李光春 2 years ago
parent 5cf7e80176
commit cda216ae0e

@ -1,3 +1,3 @@
package dorm package dorm
const Version = "1.0.46" const Version = "1.0.47"

@ -2,9 +2,8 @@ package dorm
import ( import (
"context" "context"
"errors"
"fmt"
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
"log"
) )
type MongoSessionOptions struct { type MongoSessionOptions struct {
@ -15,7 +14,7 @@ type MongoSessionOptions struct {
} }
// Begin 开始事务,会同时创建开始会话需要在退出时关闭会话 // Begin 开始事务,会同时创建开始会话需要在退出时关闭会话
func (c *MongoClient) Begin() (*MongoSessionOptions, error) { func (c *MongoClient) Begin() *MongoSessionOptions {
var ctx = context.TODO() var ctx = context.TODO()
var err error var err error
@ -27,7 +26,7 @@ func (c *MongoClient) Begin() (*MongoSessionOptions, error) {
// 开始会话 // 开始会话
ms.session, err = ms.db.StartSession() ms.session, err = ms.db.StartSession()
if err != nil { if err != nil {
return nil, errors.New(fmt.Sprintf("开始会话失败:%v", err)) log.Println("开始会话异常:", err)
} }
// 会话上下文 // 会话上下文
@ -36,23 +35,24 @@ func (c *MongoClient) Begin() (*MongoSessionOptions, error) {
// 会话开启事务 // 会话开启事务
err = ms.session.StartTransaction() err = ms.session.StartTransaction()
return ms, err return ms
}
// Close 关闭会话
func (cs *MongoSessionOptions) Close() {
var ctx = context.TODO()
cs.session.EndSession(ctx)
} }
// Rollback 回滚事务 // Rollback 回滚事务
func (cs *MongoSessionOptions) Rollback() error { func (cs *MongoSessionOptions) Rollback() {
var ctx = context.TODO() var ctx = context.TODO()
return cs.session.AbortTransaction(ctx) err := cs.session.AbortTransaction(ctx)
if err != nil {
log.Println("回滚事务异常:", err)
}
} }
// Commit 提交事务 // Commit 提交事务
func (cs *MongoSessionOptions) Commit() error { func (cs *MongoSessionOptions) Commit() {
var ctx = context.TODO() var ctx = context.TODO()
return cs.session.CommitTransaction(ctx) err := cs.session.CommitTransaction(ctx)
if err != nil {
log.Println("提交事务异常:", err)
}
cs.session.EndSession(ctx)
} }

Loading…
Cancel
Save