Ejemplo n.º 1
0
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")
}
Ejemplo n.º 2
0
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")
}
Ejemplo n.º 3
0
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")
}
Ejemplo n.º 4
0
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")
}
Ejemplo n.º 5
0
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")
}
Ejemplo n.º 6
0
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")
}
Ejemplo n.º 7
0
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")
}
Ejemplo n.º 8
0
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")
}
Ejemplo n.º 9
0
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")
}
Ejemplo n.º 10
0
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")
}
Ejemplo n.º 11
0
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")
}