因此,在向mongoDB插入模型时,我遇到了一些意外的行为。当我通过Postman向服务器发送一个空主体并将其插入数据库时,Postman的返回结果是name
和number
默认为它们预期的默认值0
和""
,但对于data
,不是默认为空数组,在插入之前给data
字段赋值一个空的[]int{}
就可以解决这个问题,同样,从Postman手动发送一个空数组作为数据字段也可以解决这个问题。但我很好奇是否有其他方法可以保证数组字段在插入时默认为[]
而不是null
。
下面是我的模型:
type Test struct{
Name string `json:"name" bson:"name"`
Number int `json:"number" bson:"number"`
Data []int `json:"data" bson:"data"`
}
1条答案
按热度按时间x8diyxa71#
实现bson.Marshaler,保存值时将调用MarshalBSON()函数
演示围棋游戏场链接:https://go.dev/play/p/1WlO_44hnco
此外,您还可以查看以下链接:Autofill created_at and updated_at in golang struct while pushing into mongodb