title: Cannot retrieve "_id" value using mgo with golang
body: <p>This is my struct definition:</p>
  
  <pre><code>type Article struct {
      Id      bson.ObjectId `json:"id"        bson:"_id,omitempty"`
      Title   string        `json:"title"`
      Author  string        `json:"author"`
      Date    string        `json:"date"`
      Tags    string        `json:"tags"`
      Content string        `json:"content"`
      Status  string        `json:"status"`
  }
  </code></pre>
  
  <p>This is the method I get my data from database:</p>
  
  <pre><code>func AllArticles() []Article {
      articles := []Article{}
      err := c_articles.Find(bson.M{}).All(&amp;articles)
      if err != nil {
          panic(err)
      }
  
      return articles
  }
  </code></pre>
  
  <p>This is one piece of object stored in database:</p>
  
  <pre><code>{ "_id" : ObjectId( "5281b83afbb7f35cb62d0834" ),
    "title" : "Hello1",
    "author" : "DYZ",
    "date" : "2013-11-10",
    "tags" : "abc",
    "content" : "This is another content.",
    "status" : "published" }
  </code></pre>
  
  <p>This is the printed result:</p>
  
  <pre><code>[{ObjectIdHex("") Hello1 DYZ 2013-11-10 abc This is another content. published}     {ObjectIdHex("") Hello2 DYZ 2013-11-14 abc This is the content. published}]
  </code></pre>
  
  <p>It seems that I can't get the real value of <code>_id</code> field, it's always <code>""</code>. What's the problem?</p>