title: mgo golang doesnt update empty array using $set
body: <p>struct and method:</p>
  
  <pre><code>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": &amp;g})
  }
  
  func (g *Group) FindById() error {
      return DB.C("groups").FindId(g.Id).One(&amp;g)
  }
  </code></pre>
  
  <p>trying to set media_filter_exception_user_ids to an empty []int{} and it doesn't work:</p>
  
  <pre><code>group := Group{}
  group.FindById(123)
  group.MediaFilterExceptionUserIds = []int{}
  group.Save()
  </code></pre>
  
  <p>It works when there's an item inside the slice, but empty slice is not set.</p>