猿问

在 BoltDB 中使用两个单独的键

我有一个User带有IDLoginName字段的结构,我希望通过对数据库的单次调用,这些字段中的任何一个都可以访问该结构。我知道 BoltDB 不应该处理任意字段索引等(与 SQL 不同),但这种情况有点不同,因为我碰巧事先知道 b 的附加字段用作索引。

那么是否有某种辅助键或多键索引?或者也许是我看不到的一些策略?如果没有,那么我将通过两次调用来实现它,我只是更喜欢“更清洁”的解决方案......

谢谢!


慕娘9325324
浏览 176回答 2
2回答

德玛西亚99

不,它不在那里。BoltDB 很像 Go。干净简单。在上面构建一个层很容易。BoltDB 甚至允许简单地实现更新事务,因此可以原子地更新或不更新另外两个存储桶。因此,创建一个保持两个或更多存储桶同步的更新事务很容易。但听起来您知道这一点,只是想检查一下您是否没有遗漏任何东西。

jeck猫

BoltDB 中没有辅助键索引,但您可以实现它。您可以将 ID 存储到另一个存储桶中的 LoginName 映射,从技术上讲,它将是您的结构的“辅助键”。即先从二级键中获取主键值,再获取User结构体。如果您的大部分调用都在 LoginName 键上,请使用 LoginName 到 ID 映射并将 User 结构存储在 LoginName 键下,反之亦然。小心:你必须自己保持一致性,记住这一点。
随时随地看视频慕课网APP

相关分类

Go
我要回答