【问题标题】:Embedded structs in aerospike-go library unexpected behaviouraerospike-go 库中的嵌入式结构意外行为
【发布时间】:2017-01-30 07:45:54
【问题描述】:

Aerospike Go 客户端

问题

需要为所有集合添加一组公共字段,即 CreatedAt、UpdtedAt、DeletedAt 等。同样,我创建了一个结构并将其嵌入到所有集合结构中。我需要将公共结构的字段保存在集合中作为给定记录的字段

示例代码

type Table struct {
   CreatedAt time.Time
   UpdatedAt time.Time
   DeletedAt time.Time
}


type Account struct {
   Table
   Name string
   Status bool
   .....
}

对于上面提到的结构Account。我希望记录存储与bin名称

CreatedAt,UpdatedAt,DeletedAt,Name,Status.....

但是当记录存储时bin名称是

Table,Name,Status...

Table 是带有键值的映射

是否有可能实现预期的行为?如果有怎么办?

【问题讨论】:

    标签: database go marshalling aerospike nosql


    【解决方案1】:

    结构嵌入嵌入方法并且不反映属性。内部类型的属性可以通过外部类型访问,但不存在于外部类型的属性中。因此,定义Table 类型的属性实际上是定义Table 类型的属性并不能将Table 类型的所有属性都反映为Account 类型。

    尝试打印您的 Account 结构 - playground

    【讨论】:

    • 这是 aerospike 特有的。Hiw 他们 Marshall 对象
    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2014-10-04
    • 2019-07-23
    • 1970-01-01
    • 2016-05-22
    • 2013-08-21
    相关资源
    最近更新 更多