结构和方法:
type Group struct {
Id int64 `bson:"_id,omitempty"`
MediaFilterExceptionUserIds []int `bson:"media_filter_exception_user_ids,omitempty"`
}
func (g *Group) Save() error {
return DB.C("groups").UpdateId(g.Id, bson.M{"$set": &g})
}
func (g *Group) FindById() error {
return DB.C("groups").FindId(g.Id).One(&g)
}
尝试将media_filter_exception_user_ids设置为空[] int {}并且它不起作用:
group := Group{}
group.FindById(123)
group.MediaFilterExceptionUserIds = []int{}
group.Save()
它在切片内有一个项目时有效,但未设置空切片。
MediaFilterExceptionUserIds类型应该从[] int更改为* [] int,
type Group struct {
Id int64 `bson:"_id,omitempty"`
MediaFilterExceptionUserIds *[]int `bson:"media_filter_exception_user_ids,omitempty"`
}
然后
group.MediaFilterExceptionUserIds = &[]int{}
将它设置为mongodb中的空数组