func ExampleGetMulti() { ctx := Example_auth() keys := []*datastore.Key{ datastore.NewKey(ctx, "Post", "post1", 0, nil), datastore.NewKey(ctx, "Post", "post2", 0, nil), datastore.NewKey(ctx, "Post", "post3", 0, nil), } posts := make([]Post, 3) if err := datastore.GetMulti(ctx, keys, posts); err != nil { log.Println(err) } }
func ExampleTransaction() { ctx := Example_auth() const retries = 3 // Increment a counter. // See https://cloud.google.com/appengine/articles/sharding_counters for // a more scalable solution. type Counter struct { Count int } key := datastore.NewKey(ctx, "counter", "CounterA", 0, nil) for i := 0; i < retries; i++ { tx, err := datastore.NewTransaction(ctx) if err != nil { break } var c Counter if err := tx.Get(key, &c); err != nil && err != datastore.ErrNoSuchEntity { break } c.Count++ if _, err := tx.Put(key, &c); err != nil { break } // Attempt to commit the transaction. If there's a conflict, try again. if _, err := tx.Commit(); err != datastore.ErrConcurrentTransaction { break } } }
func ExampleDelete() { ctx := Example_auth() key := datastore.NewKey(ctx, "Article", "articled1", 0, nil) if err := datastore.Delete(ctx, key); err != nil { log.Fatal(err) } }
func ExamplePutMulti_interfaceSlice() { ctx := Example_auth() keys := []*datastore.Key{ datastore.NewKey(ctx, "Post", "post1", 0, nil), datastore.NewKey(ctx, "Post", "post2", 0, nil), } // PutMulti with an empty interface slice. posts := []interface{}{ &Post{Title: "Post 1", PublishedAt: time.Now()}, &Post{Title: "Post 2", PublishedAt: time.Now()}, } if _, err := datastore.PutMulti(ctx, keys, posts); err != nil { log.Fatal(err) } }
func ExampleGet() { ctx := Example_auth() type Article struct { Title string Description string Body string `datastore:",noindex"` Author *datastore.Key PublishedAt time.Time } key := datastore.NewKey(ctx, "Article", "articled1", 0, nil) article := &Article{} if err := datastore.Get(ctx, key, article); err != nil { log.Fatal(err) } }
func ExamplePut() { ctx := Example_auth() type Article struct { Title string Description string Body string `datastore:",noindex"` Author *datastore.Key PublishedAt time.Time } newKey := datastore.NewIncompleteKey(ctx, "Article", nil) _, err := datastore.Put(ctx, newKey, &Article{ Title: "The title of the article", Description: "The description of the article...", Body: "...", Author: datastore.NewKey(ctx, "Author", "jbd", 0, nil), PublishedAt: time.Now(), }) if err != nil { log.Fatal(err) } }