为了账号安全,请及时绑定邮箱和手机立即绑定

将嵌入结构复制到新结构中,而无需复制其所有字段

将嵌入结构复制到新结构中,而无需复制其所有字段

Go
慕标5832272 2022-06-13 15:41:22
我有一个在我的逻辑中使用的结构type MyStruct struct {  F1 string  F2 string}我想将类型MyStruct的值保存到文档数据库中,只添加一个时间戳。所以我创建了一个新的结构嵌入MyStructtype MyStructForDB {  MyStruct  Ts         time.Time}在 saveToDb 函数中,我执行以下操作func saveToDb(s MyStruct) {  sDb := MyStructForDB{    s, time.Now()  }  // execute the update on the DB}如果我这样继续,在数据库上我会找到一个具有以下结构的文档{  myStruct: {    f1: "a value"        // any value that was in s.F1    f2: "another value"  // any value that was in s.F2  }  ts: 2020-06-26T14:15:07.050Z  // a timestamp value}虽然这没关系,但我宁愿不要看到该myStruct物业,而宁愿看到像这样的更扁平的文件{   f1: "a value"        // any value that was in s.F1   f2: "another value"  // any value that was in s.F2   ts: 2020-06-26T14:15:07.050Z  // a timestamp value}我知道我可以通过一个一个地复制字段或使用反射来做到这一点,但我只是想知道是否有更简单的方法来实现这一点
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

在 DocumentDB 中,您可以使用package 的inline标志 bson来展平嵌入的结构


type MyStructForDB {

  MyStruct   `bson:",inline"`

  Ts         time.Time

}


查看完整回答
反对 回复 2022-06-13
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信