1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
package tests
import (
"fmt"
r "gopkg.in/rethinkdb/rethinkdb-go.v6"
)
// Group games by player.
func ExampleTerm_Group() {
cur, err := r.DB("examples").Table("games").Group("player").Run(session)
if err != nil {
fmt.Print(err)
return
}
var res []interface{}
err = cur.All(&res)
if err != nil {
fmt.Print(err)
return
}
fmt.Print(res)
}
// Group games by the index type.
func ExampleTerm_GroupByIndex() {
cur, err := r.DB("examples").Table("games").GroupByIndex("type").Run(session)
if err != nil {
fmt.Print(err)
return
}
var res []interface{}
err = cur.All(&res)
if err != nil {
fmt.Print(err)
return
}
fmt.Print(res)
}
// Suppose that the table games2 has the following data:
//
// [
// { id: 1, matches: {'a': [1, 2, 3], 'b': [4, 5, 6]} },
// { id: 2, matches: {'b': [100], 'c': [7, 8, 9]} },
// { id: 3, matches: {'a': [10, 20], 'c': [70, 80]} }
// ]
// Using MultiGroup we can group data by match A, B or C.
func ExampleTerm_MultiGroup() {
cur, err := r.DB("examples").Table("games2").MultiGroup(r.Row.Field("matches").Keys()).Run(session)
if err != nil {
fmt.Print(err)
return
}
var res []interface{}
err = cur.All(&res)
if err != nil {
fmt.Print(err)
return
}
fmt.Print(res)
}
// Ungrouping grouped data.
func ExampleTerm_Ungroup() {
cur, err := r.DB("examples").Table("games").
Group("player").
Max("points").Field("points").
Ungroup().
Run(session)
if err != nil {
fmt.Print(err)
return
}
var res []interface{}
err = cur.All(&res)
if err != nil {
fmt.Print(err)
return
}
fmt.Print(res)
}
// Return the number of documents in the table posts.
func ExampleTerm_Reduce() {
cur, err := r.DB("examples").Table("posts").
Map(func(doc r.Term) interface{} {
return 1
}).
Reduce(func(left, right r.Term) interface{} {
return left.Add(right)
}).
Run(session)
if err != nil {
fmt.Print(err)
return
}
var res int
err = cur.One(&res)
if err != nil {
fmt.Print(err)
return
}
fmt.Print(res)
}
// Concatenate words from a list.
func ExampleTerm_Fold() {
cur, err := r.Expr([]string{"a", "b", "c"}).Fold("", func(acc, word r.Term) r.Term {
return acc.Add(r.Branch(acc.Eq(""), "", ", ")).Add(word)
}).Run(session)
if err != nil {
fmt.Print(err)
return
}
var res string
err = cur.One(&res)
if err != nil {
fmt.Print(err)
return
}
fmt.Print(res)
// Output:
// a, b, c
}
|