Привета я использую Монго и golang по моему прецеденту я хочу, чтобы генерировать _id перед вставкой, для этого я используюGolang Монго Вставка с самогенерирующимся _Id использованием bson.NewObjectID(), что приводит к неожиданной схеме
bson.NewobjectId()
моя структура несколько походит на этом
type Device struct {
Id bson.ObjectId `bson:"_id" json:"_id,omitempty"`
UserId string `bson:"userId" json:"userId"`
CategorySlug string `bson:"categorySlug" json:"categorySlug"`
CreatedAt time.Time `bson:"createdAt" json:"createdAt"`
ModifiedAt time.Time `bson:"modifiedAt" json:"modifiedAt"`
BrandId int `bson:"brandId" json:"brandId"`
Category string `bson:"category" json:"category"`
}
, когда я использую этот запрос JSon
{
"userId" : "gKn42jJD8uy8ksQpi",
"categorySlug" : "television",
"createdAt" : "2016-08-25T18:47:29.558Z",
"modifiedAt" : "2016-08-25T18:47:29.558Z",
"brandId" : 90,
"category" : "LED TV",
"dateOfPurchase" : "2016-08-25T18:47:29.558Z"
}
и декодирует это в тип устройства и после этого инициализировать мой идентификатор, используя decode.ID = bson.NewObjectId()
, но когда я посмотрел в мою базу данных вставленное значение ИТС странно в таком виде
{
"_id" : ObjectId("57bf425a34ce5ee85891b914"),
"0" : {
"_id" : ObjectId("57bf425ae03ec2179a000001"),
"userId" : "gKn42jJD8uy8ksQpi",
"categorySlug" : "television",
"createdAt" : ISODate("2016-08-25T18:47:29.558Z"),
"modifiedAt" : ISODate("2016-08-25T18:47:29.558Z"),
"brandId" : 90,
"category" : "LED TV",
"dateofpurchase" : ISODate("2016-08-25T18:47:29.558Z")
}
}
Я не знаю причины, почему это происходит, поэтому я хочу, чтобы мои данные были надлежащим документом mongo. Пожалуйста, помогите мне понять, почему эта вещь происходит, и создается новый _id.