Есть структура с полем primitive.ObjectID, которое должно присваиваться самой СУБД.
type Indicator struct {
Id primitive.ObjectID `bson:"_id"`
Name string
Ticker string
Options map[string]interface{}
Subscribers []string
}
То есть, при создании структуры, я заполняю все поля кроме ID. Далее, с помощью collection.InsertOne() добавляю структуру в базу, где ей присваивается пустой "_id". Соответственно InsertedID, возвращаемый InserOne() тоже пустой.
Как сделать так, чтобы Mongo самостоятельно присваивала корректный ObjectID документу?
Тестовый код:
testIndicator := db.Indicator{
Name: "testLevel",
Ticker: "AAPL",
Options: map[string]interface{}{
"price": 238.0,
"update_rate": "30min",
},
Subscribers: []string{"testsub1", "testsub2"},
}
res, err := indicatorCollection.InsertOne(ctx, testIndicator)
if err != nil {
t.Error(err)
}
fmt.Println(res.InsertedID) // выводит: ObjectID("000000000000000000000000")