From 74ffcfe6b2c80b7cf459798dc42bd278075ccb50 Mon Sep 17 00:00:00 2001 From: Julio Capote Date: Thu, 29 Dec 2022 22:32:16 -0500 Subject: experiment with write JSON to database and munge it for collections --- models/persister.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'models/persister.go') diff --git a/models/persister.go b/models/persister.go index 71cddc8..3729c81 100644 --- a/models/persister.go +++ b/models/persister.go @@ -35,3 +35,23 @@ func (p *Persister) Count(model model) (int, error) { }) return count, err } + +func (p *Persister) Collect(model model) ([]string, error) { + var result []string + err := p.db.View(func(txn *badger.Txn) error { + opts := badger.DefaultIteratorOptions + opts.PrefetchValues = false // TODO Maybe we want true here + it := txn.NewIterator(opts) + defer it.Close() + prefix := []byte(model.Keybase()) + for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() { + item := it.Item() + item.Value(func(v []byte) error { + result = append(result, string(v)) + return nil + }) + } + return nil + }) + return result, err +} -- cgit v1.2.3