Skip to content

Commit

Permalink
Add info on how to iterate over existing buckets (#828)
Browse files Browse the repository at this point in the history
* Add info on how to list existing top-level buckets

Signed-off-by: ErikKalkoken <[email protected]>
  • Loading branch information
ErikKalkoken committed Aug 29, 2024
1 parent 6e354be commit 0cecda6
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,17 @@ guarantee that they exist for future transactions.

To delete a bucket, simply call the `Tx.DeleteBucket()` function.

You can also iterate over all existing top-level buckets with `Tx.ForEach()`:

```go
db.View(func(tx *bolt.Tx) error {
tx.ForEach(func(name []byte, b *bolt.Bucket) error {
fmt.Println(string(name))
return nil
})
return nil
})
```

### Using key/value pairs

Expand Down Expand Up @@ -452,7 +463,7 @@ key and the cursor still points to the first element if present.

If you remove key/value pairs during iteration, the cursor may automatically
move to the next position if present in current node each time removing a key.
When you call `c.Next()` after removing a key, it may skip one key/value pair.
When you call `c.Next()` after removing a key, it may skip one key/value pair.
Refer to [pull/611](https://github.com/etcd-io/bbolt/pull/611) to get more detailed info.

During iteration, if the key is non-`nil` but the value is `nil`, that means
Expand Down

0 comments on commit 0cecda6

Please sign in to comment.