Go 如何使用SeekToLast获取最后一个键值

Go 如何使用SeekToLast获取最后一个键值,go,leveldb,Go,Leveldb,我需要性能最好的代码来获取数据库中的最后一个键值。我用谷歌搜索这个问题并找到SeekToLast函数,但我不知道如何使用它。你的意思是 如果是这样的话,那么它看起来就像 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

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

你的意思是

如果是这样的话,那么它看起来就像

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()
您还可以使用特定前缀检索最后一个键值,或者通常从某个范围检索(更多详细信息:)


这有帮助吗?

请解释不理解的内容。软件包应该安装在这里写的-我想要一个代码示例。。。简单易懂的东西谢谢你的链接我想我的问题是我使用这个包github.com/syndtr/goleveldb/leveldb而不是你的链接使用另一个包:)这里你可以找到一个例子-这听起来很有用谢谢:)
iter := db.NewIterator(util.BytesPrefix([]byte("prefix_")), nil)
// or
iter := db.NewIterator(util.Range{
    Start: []byte("prefix_03"),
    Limit: []byte("prefix_04"),
}), nil)