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  }