如何使用SeekToLast获取最后的键值

时间:2019-04-08 11:37:35

标签: go leveldb

我想要最佳性能的代码来获取数据库中的最后一个键值。我用谷歌搜索了这个问题并找到了SeekToLast函数,但是我不知道如何使用它。

1 个答案:

答案 0 :(得分:0)

您是说goleveldb吗?

如果是这样,它将看起来像

iter := db.NewIterator(nil, nil)
ok := iter.Last()
if ok {
    key = iter.Key()
    value = iter.Value()
}
iter.Release() // Note: you should first get data and then release iterator
err = iter.Error()

或者从头到尾进行迭代。

iter := db.NewIterator(nil, nil)
for ok := iter.Last(); ok; ok = iter.Prev() {
    // Use key/value.
    // ...
}
iter.Release()
err = iter.Error()

您还可以检索带有特定前缀的最后一个键值,或者通常从某个范围(更多详细信息:https://godoc.org/github.com/syndtr/goleveldb/leveldb#DB.NewIterator)中获取

iter := db.NewIterator(util.BytesPrefix([]byte("prefix_")), nil)
// or
iter := db.NewIterator(util.Range{
    Start: []byte("prefix_03"),
    Limit: []byte("prefix_04"),
}), nil)

有帮助吗?