结构和方法:
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()
当切片中有一个项目但未设置空切片时,它可以工作。
答案 0 :(得分:0)
MediaFilterExceptionUserIds类型应从[] int更改为* [] int,
type Group struct {
Id int64 `bson:"_id,omitempty"`
MediaFilterExceptionUserIds *[]int `bson:"media_filter_exception_user_ids,omitempty"`
}
然后
group.MediaFilterExceptionUserIds = &[]int{}
将其设置为mongodb中的空数组