github.com/nutsdb/nutsdb@v1.0.4/examples/bucket/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 7 "github.com/nutsdb/nutsdb" 8 ) 9 10 var ( 11 db *nutsdb.DB 12 ) 13 14 func init() { 15 db, _ = nutsdb.Open( 16 nutsdb.DefaultOptions, 17 nutsdb.WithDir("/tmp/nutsdbexample/example_bucket"), 18 // nutsdb.WithRWMode(nutsdb.MMap), 19 // nutsdb.WithSyncEnable(false), 20 ) 21 } 22 23 func main() { 24 for i := 1; i <= 10; i++ { 25 bucket := "bucket_" + fmt.Sprintf("%03d", i) 26 27 if err := db.Update( 28 func(tx *nutsdb.Tx) error { 29 return tx.NewBucket(nutsdb.DataStructureBTree, bucket) 30 }); err != nil { 31 //log.Fatal(err) 32 } 33 34 if err := db.Update( 35 func(tx *nutsdb.Tx) error { 36 key := []byte("name1") 37 val := []byte("val1") 38 return tx.Put(bucket, key, val, 0) 39 }); err != nil { 40 log.Fatal(err) 41 } 42 } 43 44 fmt.Println("before iterate buckets") 45 iterateBuckets() 46 47 // delete bucket 48 bucket := "bucket_003" 49 if err := db.Update( 50 func(tx *nutsdb.Tx) error { 51 return tx.DeleteBucket(nutsdb.DataStructureBTree, bucket) 52 }); err != nil { 53 log.Fatal(err) 54 } 55 fmt.Println("after iterate buckets") 56 iterateBuckets() 57 } 58 59 func iterateBuckets() { 60 if err := db.View( 61 func(tx *nutsdb.Tx) error { 62 return tx.IterateBuckets(nutsdb.DataStructureBTree, "*", func(bucket string) bool { 63 fmt.Println("bucket: ", bucket) 64 return true 65 }) 66 }); err != nil { 67 log.Fatal(err) 68 } 69 }