• 使用键值对

    使用键值对

    将key-value键值对保存在一个bucket, 你可以使用 tx.Put 这个方法:

    • 添加数据
    1. if err := db.Update(
    2. func(tx *nutsdb.Tx) error {
    3. key := []byte("name1")
    4. val := []byte("val1")
    5. bucket: = "bucket1"
    6. if err := tx.Put(bucket, key, val, 0); err != nil {
    7. return err
    8. }
    9. return nil
    10. }); err != nil {
    11. log.Fatal(err)
    12. }
    • 更新数据

    上面的代码执行之后key为”name1”和value值”val1”被保存在命名为bucket1的bucket里面。

    如果你要做更新操作,你可以仍然用tx.Put方法去执行,比如下面的例子把value的值改成”val1-modify”:

    1. if err := db.Update(
    2. func(tx *nutsdb.Tx) error {
    3. key := []byte("name1")
    4. val := []byte("val1-modify") // 更新值
    5. bucket: = "bucket1"
    6. if err := tx.Put(bucket, key, val, 0); err != nil {
    7. return err
    8. }
    9. return nil
    10. }); err != nil {
    11. log.Fatal(err)
    12. }
    • 获取数据

    获取值可以用tx.Get 这个方法:

    1. if err := db.View(
    2. func(tx *nutsdb.Tx) error {
    3. key := []byte("name1")
    4. bucket: = "bucket1"
    5. if e, err := tx.Get(bucket, key); err != nil {
    6. return err
    7. } else {
    8. fmt.Println(string(e.Value)) // "val1-modify"
    9. }
    10. return nil
    11. }); err != nil {
    12. log.Println(err)
    13. }
    • 删除数据

    删除使用tx.Delete() 方法:

    1. if err := db.Update(
    2. func(tx *nutsdb.Tx) error {
    3. key := []byte("name1")
    4. bucket: = "bucket1"
    5. if err := tx.Delete(bucket, key); err != nil {
    6. return err
    7. }
    8. return nil
    9. }); err != nil {
    10. log.Fatal(err)
    11. }