【发布时间】:2019-08-20 15:38:02
【问题描述】:
我使用以下软件包:
“gopkg.in/mgo.v2”
“gopkg.in/mgo.v2/bson”
我尝试处理嵌套结构并将其放入 mongodb。 下面的代码正确地完成了这项工作,但我不知道这是否是正确的方法。
// init
type DummyStruct struct {
User string `bson:"user"`
Foo FooType `bson:"foo"`
}
type FooType struct {
BarA int `bson:"bar_a"`
BarB int `bson:"bar_b"`
}
// main
foobar := DummyStruct{
User: "Foobar",
Foo: FooType{
BarA: 123,
BarB: 456,
},
}
// Insert
if err := c.Insert(foobar); err != nil {
panic(err)
}
嵌套结构是否需要分两部分构建?
如果我使用 json->golang 结构转换器 (https://mholt.github.io/json-to-go/)
我会得到以下结构
type DummyStructA struct {
User string `bson:"user"`
Foo struct {
BarA int `bson:"bar_a"`
BarB int `bson:"bar_b"`
} `bson:"foo"`
}
现在我不知道如何填充这个结构。
我试过了:
foobar := DummyStructA{
User: "Foobar",
Foo: {
BarA: 123,
BarB: 456,
},
}
但出现此错误:复合文字中缺少类型
我也试过了
foobar := DummyStructA{
User: "Foobar",
Foo{
BarA: 123,
BarB: 456,
},
}
并得到这 2 个错误:
field:value 和 value 初始化器的混合
未定义:Foo
还是需要用bson.M来处理结构体(DummyStructA)?
【问题讨论】: