我正在使用Go的mongo-go驱动程序在mongoDb上保存一些文档。一切正常,但我想知道是否有一种方法可以改变ID是如何自动生成的。现在,代码中的文档模型具有primitive.ObjectID类型,如下所示
type Review struct {
ID primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
Title string `json:"title"`
Text string `json:"text"`
Rate float64 `json:"rate"`
Date time.Time `json:"date"`
Product Product `json:"product"`
}所创建的文档如下所示
{
"_id" : ObjectId("5d6f739a20d42db438016cb1"),
"title" : "test-id",
"text" : "rev-text",
"rate" : 5.0,
"date" : ISODate("2019-09-02T12:18:00.000+02:00"),
"status" : "pending"
}到目前一切尚好。但是,我希望ID是UUID,而不是ObjectId。我知道我可以将struct ID类型更改为UUID或string,并在保存文档时设置该字段,但是我想知道是否有方法可以更改mongoDb的默认ObjectID生成器,以便在保存新文档时自动生成UUID
发布于 2019-09-04 21:34:08
对于_id,您不必使用ObjectID:
ID string `json:"id,omitempty" bson:"_id,omitempty"`然后,您可以为_id插入任何您想要的值。但是,您不能以这种方式自动生成ID,您必须自己生成ID,并将其与生成的ID一起插入。
https://stackoverflow.com/questions/57784597
复制相似问题