我有一个在我的逻辑中使用的结构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
}
- 1 回答
- 0 关注
- 80 浏览
添加回答
举报
0/150
提交
取消