func (c ResumeTest) UpdateAll3() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() query := map[string]interface{}{ "_id": map[string]interface{}{ "$lte": 100, }, } update := map[string]interface{}{ "$inc": map[string]interface{}{ "age": 5, }, } unModify := map[string]interface{}{ "$inc": map[string]interface{}{ "age": -5, }, } obj, _ := txnManager.UpdateAll(txnId, "Test1", query, update, unModify) fmt.Println("obj3", obj) txnManager.Commit(txnId) c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("UpdateAll3") }
func (c ResumeTest) RecoverTest() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() defer func() { if x := recover(); x != nil { txnManager.Rollback(txnId) panic(x) } }() test1 := map[string]interface{}{"name": "insertTest1"} txnManager.Insert(txnId, "Test1", test1) test2 := map[string]interface{}{"name": "insertTest2"} txnManager.Insert(txnId, "Test2", test2) txnManager.Commit(txnId) c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("Commit1") }
func (c ResumeTest) Commit9() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() test1 := map[string]interface{}{"name": "insertTest9"} txnManager.Insert(txnId, "Test1", test1) test3 := map[string]interface{}{"_id": 3, "name": "insertTest9"} txnManager.Remove(txnId, "Test2", test3) test2 := map[string]interface{}{"_id": 4, "name": "insertTest9"} txnManager.Update(txnId, "Test2", test2) test4 := map[string]interface{}{"_id": 5, "name": "insertTest9"} txnManager.Remove(txnId, "Test2", test4) txnManager.Commit(txnId) c.Response.ContentType = "text/plain; charset=utf-9" return c.RenderText("Commit9") }
func (c ResumeTest) UpdateAll1() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() query := map[string]interface{}{ "_id": 36, } update := map[string]interface{}{ "$set": map[string]interface{}{ "age": 20, }, } unModify := map[string]interface{}{ "$unset": map[string]interface{}{ "age": 1, }, } txnManager.UpdateAll(txnId, "Test1", query, update, unModify) txnManager.Commit(txnId) c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("UpdateAll1") }
func (c ResumeTest) ResumeBeginCommit2() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnManager.ResumePeriod() c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("ResumeBeginCommit2") }
func (c ModelTest) BeginTransaction() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnManager.BeginTransaction() c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("BeginTransaction") }
func (c ModelTest) Commit12() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() { query := map[string]interface{}{ "_id": map[string]interface{}{ "$lt": 7, }, } update := map[string]interface{}{ "$set": map[string]interface{}{ "age": 9, }, } unModify := map[string]interface{}{ "$unset": map[string]interface{}{ "age": 1, }, } txnManager.UpdateAll(txnId, "Test1", query, update, unModify) } { query := map[string]interface{}{ "_id": map[string]interface{}{ "$gte": 8, }, } update := map[string]interface{}{ "$set": map[string]interface{}{ "age": 9, }, } unModify := map[string]interface{}{ "$unset": map[string]interface{}{ "age": 1, }, } txnManager.UpdateAll(txnId, "Test2", query, update, unModify) } c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("Commit12") }
func (c ResumeTest) SelectForUpdate2() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() test1 := map[string]interface{}{ "_id": 36, "name": "SelectForUpdate2", } txnManager.SelectForUpdate(txnId, "Test1", test1) c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("SelectForUpdate2") }
func (c ModelTest) Commit2() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() test1 := map[string]interface{}{"name": "insertTest2"} txnManager.Insert(txnId, "Test1", test1) test2 := map[string]interface{}{"name": "insertTest2"} txnManager.Insert(txnId, "Test2", test2) c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("Commit2") }
func (c ResumeTest) RemoveAll1() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() query := map[string]interface{}{ "_id": 5, } obj, _ := txnManager.RemoveAll(txnId, "Test1", query) fmt.Println("removeAll1", obj) txnManager.Commit(txnId) c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("RemoveAll1") }
func (c ResumeTest) Commit20() revel.Result { connectionFactory := mongo.ConnectionFactory{} session, db := connectionFactory.GetConnection() defer session.Close() txnManager := TxnManager{db} txnId := txnManager.BeginTransaction() test1 := map[string]interface{}{ "name": "insertTest20", } test1 = txnManager.Insert(txnId, "Test1", test1) test1["address"] = "xiamen" test1, _ = txnManager.Update(txnId, "Test1", test1) test1["age"] = 20 test1, _ = txnManager.Update(txnId, "Test1", test1) c.Response.ContentType = "text/plain; charset=utf-8" return c.RenderText("Commit20") }