gopkg.in/rethinkdb/rethinkdb-go.v6@v6.2.2/internal/integration/tests/example_query_control_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"fmt"
     5  	r "gopkg.in/rethinkdb/rethinkdb-go.v6"
     6  )
     7  
     8  // Return heroes and superheroes.
     9  func ExampleBranch() {
    10  	cur, err := r.DB("examples").Table("marvel").OrderBy("name").Map(r.Branch(
    11  		r.Row.Field("victories").Gt(100),
    12  		r.Row.Field("name").Add(" is a superhero"),
    13  		r.Row.Field("name").Add(" is a hero"),
    14  	)).Run(session)
    15  	if err != nil {
    16  		fmt.Print(err)
    17  		return
    18  	}
    19  
    20  	var strs []string
    21  	err = cur.All(&strs)
    22  	if err != nil {
    23  		fmt.Print(err)
    24  		return
    25  	}
    26  
    27  	for _, str := range strs {
    28  		fmt.Println(str)
    29  	}
    30  
    31  	// Output:
    32  	// Iron Man is a superhero
    33  	// Jubilee is a hero
    34  }
    35  
    36  // Return an error
    37  func ExampleError() {
    38  	err := r.Error("this is a runtime error").Exec(session)
    39  	fmt.Println(err)
    40  }
    41  
    42  // Suppose we want to retrieve the titles and authors of the table posts. In the
    43  // case where the author field is missing or null, we want to retrieve the
    44  // string "Anonymous".
    45  func ExampleTerm_Default() {
    46  	cur, err := r.DB("examples").Table("posts").Map(map[string]interface{}{
    47  		"title":  r.Row.Field("title"),
    48  		"author": r.Row.Field("author").Default("Anonymous"),
    49  	}).Run(session)
    50  	if err != nil {
    51  		fmt.Print(err)
    52  		return
    53  	}
    54  
    55  	var res map[string]interface{}
    56  	err = cur.One(&res)
    57  	if err != nil {
    58  		fmt.Print(err)
    59  		return
    60  	}
    61  
    62  	fmt.Print(res)
    63  }
    64  
    65  // Convert a Go integer to a ReQL object
    66  func ExampleExpr_int() {
    67  	cur, err := r.Expr(1).Run(session)
    68  	if err != nil {
    69  		fmt.Print(err)
    70  		return
    71  	}
    72  
    73  	var res interface{}
    74  	err = cur.One(&res)
    75  	if err != nil {
    76  		fmt.Print(err)
    77  		return
    78  	}
    79  
    80  	jsonPrint(res)
    81  
    82  	// Output: 1
    83  }
    84  
    85  // Convert a Go slice to a ReQL object
    86  func ExampleExpr_slice() {
    87  	cur, err := r.Expr([]int{1, 2, 3}).Run(session)
    88  	if err != nil {
    89  		fmt.Print(err)
    90  		return
    91  	}
    92  
    93  	var res []interface{}
    94  	err = cur.All(&res)
    95  	if err != nil {
    96  		fmt.Print(err)
    97  		return
    98  	}
    99  
   100  	jsonPrint(res)
   101  
   102  	// Output:
   103  	// [
   104  	//     1,
   105  	//     2,
   106  	//     3
   107  	// ]
   108  }
   109  
   110  // Convert a Go slice to a ReQL object
   111  func ExampleExpr_map() {
   112  	cur, err := r.Expr(map[string]interface{}{
   113  		"a": 1,
   114  		"b": "b",
   115  	}).Run(session)
   116  	if err != nil {
   117  		fmt.Print(err)
   118  		return
   119  	}
   120  
   121  	var res interface{}
   122  	err = cur.One(&res)
   123  	if err != nil {
   124  		fmt.Print(err)
   125  		return
   126  	}
   127  
   128  	jsonPrint(res)
   129  
   130  	// Output:
   131  	// {
   132  	//     "a": 1,
   133  	//     "b": "b"
   134  	// }
   135  }
   136  
   137  // Convert a Go slice to a ReQL object
   138  func ExampleExpr_struct() {
   139  	type ExampleTypeNested struct {
   140  		N int
   141  	}
   142  
   143  	type ExampleTypeEmbed struct {
   144  		C string
   145  	}
   146  
   147  	type ExampleTypeA struct {
   148  		ExampleTypeEmbed
   149  
   150  		A      int
   151  		B      string
   152  		Nested ExampleTypeNested
   153  	}
   154  
   155  	cur, err := r.Expr(ExampleTypeA{
   156  		A: 1,
   157  		B: "b",
   158  		ExampleTypeEmbed: ExampleTypeEmbed{
   159  			C: "c",
   160  		},
   161  		Nested: ExampleTypeNested{
   162  			N: 2,
   163  		},
   164  	}).Run(session)
   165  	if err != nil {
   166  		fmt.Print(err)
   167  		return
   168  	}
   169  
   170  	var res interface{}
   171  	err = cur.One(&res)
   172  	if err != nil {
   173  		fmt.Print(err)
   174  		return
   175  	}
   176  
   177  	jsonPrint(res)
   178  
   179  	// Output:
   180  	// {
   181  	//     "A": 1,
   182  	//     "B": "b",
   183  	//     "C": "c",
   184  	//     "Nested": {
   185  	//         "N": 2
   186  	//     }
   187  	// }
   188  }
   189  
   190  // Convert a Go struct (with rethinkdb tags) to a ReQL object. The tags allow
   191  // the field names to be changed.
   192  func ExampleExpr_structTags() {
   193  	type ExampleType struct {
   194  		A int    `rethinkdb:"field_a"`
   195  		B string `rethinkdb:"field_b"`
   196  	}
   197  
   198  	cur, err := r.Expr(ExampleType{
   199  		A: 1,
   200  		B: "b",
   201  	}).Run(session)
   202  	if err != nil {
   203  		fmt.Print(err)
   204  		return
   205  	}
   206  
   207  	var res interface{}
   208  	err = cur.One(&res)
   209  	if err != nil {
   210  		fmt.Print(err)
   211  		return
   212  	}
   213  
   214  	jsonPrint(res)
   215  
   216  	// Output:
   217  	// {
   218  	//     "field_a": 1,
   219  	//     "field_b": "b"
   220  	// }
   221  }
   222  
   223  // Execute a raw JSON query
   224  func ExampleRawQuery() {
   225  	cur, err := r.RawQuery([]byte(`"hello world"`)).Run(session)
   226  	if err != nil {
   227  		fmt.Print(err)
   228  		return
   229  	}
   230  
   231  	var res interface{}
   232  	err = cur.One(&res)
   233  	if err != nil {
   234  		fmt.Print(err)
   235  		return
   236  	}
   237  
   238  	jsonPrint(res)
   239  
   240  	// Output: "hello world"
   241  }