title: Golang mgo json string name consistency
body: <p>Let's say we have a Go struct like so</p>
  
  <pre><code>type Person struct {
      Name string `json:"name" bson:"name"`
  }
  </code></pre>
  
  <p>Whenever I want to search a field for this person, in the Mongo module <code>mgo</code>, I do something like <code>userCollection.Find(bson.M{"name" : "John"})</code></p>
  
  <p>What I want to know is, is there a way to call <code>Find</code> like above, but where I don't need to type out the string field that I'm looking for (<code>"name"</code> in this case). I want to avoid this because if I change the <code>bson</code> field name in the struct, I'll have to comb through the code base and change it everywhere.</p>
  
  <p>Aside from having global constants everywhere for every struct's field, is there a way to call <code>mgo</code> using the struct's own field?</p>
  
  <p>For instance, something which can be called <code>userCollection.Find(bson.M{Person.Name : "John"})</code>, which will automatically find <code>Person.Name</code> field in the struct (which is <code>"name"</code> in this case) and perform the query.</p>