使用键值对

将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. }