我有一个User
带有ID
和LoginName
字段的结构,我希望这些字段中的任何一个都可以通过对数据库的一次调用来访问这个结构。我知道 BoltDB 不应该处理任意字段索引等(与 SQL 不同),但这种情况有点不同,因为我事先知道 b 用作索引的附加字段。
那么是否有某种辅助键或多键索引?或者可能是我看不到的一些策略?如果没有,那么我将通过两个调用来实现它,我只是更喜欢“更清洁”的解决方案......
谢谢!
BoltDB 中没有二级键索引,但你可以实现它。
您可以将 ID 存储到另一个存储桶中的 LoginName 映射,从技术上讲,它将是您的结构的“辅助键”。即先从辅键中获取主键值,再从User结构体中获取。
如果您的大部分呼叫都在 LoginName 键上,请使用 LoginName 到 ID 映射并将 User 结构存储在 LoginName 键下,反之亦然。
注意:你必须自己保持一致性,记住这一点。
不,它不在那里。BoltDB 很像 Go。干净简单。在上面构建一个层很容易。BoltDB 甚至允许简单地实现更新事务,因此可以原子地更新或不更新另外两个存储桶。因此,创建一个使两个或多个存储桶保持同步的更新事务很容易。但听起来你知道这一点,只是想检查你是否遗漏了什么。