diff --git a/db/boltdb/boltdb.go b/db/boltdb/boltdb.go index 4f547f7..8d65b56 100644 --- a/db/boltdb/boltdb.go +++ b/db/boltdb/boltdb.go @@ -376,3 +376,27 @@ func (cc *boltDB) BatchSet(bucketName string, value map[string][]byte) (rer erro }) return } + +// 批处理删除 +func (cc *boltDB) BatchDelete(bucketName string, keys []string) (rer error) { + rer = ErrBucketInvalid + if bucketName == "" { + return + } + rer = cc.db.Batch(func(tx *bolt.Tx) error { + b := tx.Bucket([]byte(bucketName)) + if b == nil { + return ErrBucketNotFound + } + for _, k := range keys { + if k == "" { + return ErrKeyInvalid + } + if err := b.Delete([]byte(k)); err != nil { + return err + } + } + return nil + }) + return +}