title: Google app engine + Go + datastore + add / update / delete record
body: <p>Here is how I insert records in to DataStore</p>
  
  <pre><code>type User struct {
      Id string
      Name string
      Pass string
      Email string
  }
  
  user := User {
      Id:     "4be0f045-6ce8-4d3e-751e-15bd84f2b925",
      Name:   "test",
      Pass:   "test",
      Email:  "",
  }
  
  datastore.Put(context, datastore.NewIncompleteKey(context, "User", nil), &amp;user)
  </code></pre>
  
  <p>How do I update or delete a record ? All the examples I see use some "key". I need simple things like (pseudo code):</p>
  
  <pre><code>user.Email = "new@email.com"
  filter := string.Format("Id='{0}'", "4be0f045-6ce8-4d3e-751e-15bd84f2b925");
  datastore.Put(context, "User", user, filter ), &amp;user)
  </code></pre>
  
  <p>Also, probably related, how to get keys after I do</p>
  
  <pre><code>querySize := 1000
  query := datastore.NewQuery("User").Limit(querySize)
  queryResult := make([]User, 0, querySize)
  query.GetAll(context, &amp;queryResult)
  </code></pre>
  
  <p>"queryResult" contains all the records, what's their corresponding keys ? so I can do an update if I want to.</p>