Использую следующие пакеты:
"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)
}
Нужно ли строить вложенную структуру из 2 частей?
Если я использую преобразователь структуры 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 ошибки:
смесь полей: значение и инициализаторы значения
undefined: Foo
Или необходимо обрабатывать структуру (DummyStructA) с помощью bson.M?