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

     1  package tests
     2  
     3  import (
     4  	"fmt"
     5  	r "gopkg.in/rethinkdb/rethinkdb-go.v6"
     6  )
     7  
     8  // Find a document by ID.
     9  func ExampleTerm_Get() {
    10  	// Fetch the row from the database
    11  	res, err := r.DB("examples").Table("heroes").Get(2).Run(session)
    12  	if err != nil {
    13  		fmt.Print(err)
    14  		return
    15  	}
    16  	defer res.Close()
    17  
    18  	if res.IsNil() {
    19  		fmt.Print("Row not found")
    20  		return
    21  	}
    22  
    23  	var hero map[string]interface{}
    24  	err = res.One(&hero)
    25  	if err != nil {
    26  		fmt.Printf("Error scanning database result: %s", err)
    27  		return
    28  	}
    29  	fmt.Print(hero["name"])
    30  
    31  	// Output: Superman
    32  }
    33  
    34  // Find a document by ID.
    35  func ExampleTerm_GetAll() {
    36  	// Fetch the row from the database
    37  	res, err := r.DB("examples").Table("heroes").GetAll(2).Run(session)
    38  	if err != nil {
    39  		fmt.Print(err)
    40  		return
    41  	}
    42  	defer res.Close()
    43  
    44  	if res.IsNil() {
    45  		fmt.Print("Row not found")
    46  		return
    47  	}
    48  
    49  	var hero map[string]interface{}
    50  	err = res.One(&hero)
    51  	if err != nil {
    52  		fmt.Printf("Error scanning database result: %s", err)
    53  		return
    54  	}
    55  	fmt.Print(hero["name"])
    56  
    57  	// Output: Superman
    58  }
    59  
    60  // Find a document by ID.
    61  func ExampleTerm_GetAll_multiple() {
    62  	// Fetch the row from the database
    63  	res, err := r.DB("examples").Table("heroes").GetAll(1, 2).Run(session)
    64  	if err != nil {
    65  		fmt.Print(err)
    66  		return
    67  	}
    68  	defer res.Close()
    69  
    70  	var heroes []map[string]interface{}
    71  	err = res.All(&heroes)
    72  	if err != nil {
    73  		fmt.Printf("Error scanning database result: %s", err)
    74  		return
    75  	}
    76  	fmt.Print(heroes[0]["name"])
    77  
    78  	// Output: Superman
    79  }
    80  
    81  // Find all document with an indexed value.
    82  func ExampleTerm_GetAll_optArgs() {
    83  	// Fetch the row from the database
    84  	res, err := r.DB("examples").Table("heroes").GetAll("man_of_steel").OptArgs(r.GetAllOpts{
    85  		Index: "code_name",
    86  	}).Run(session)
    87  	if err != nil {
    88  		fmt.Print(err)
    89  		return
    90  	}
    91  	defer res.Close()
    92  
    93  	if res.IsNil() {
    94  		fmt.Print("Row not found")
    95  		return
    96  	}
    97  
    98  	var hero map[string]interface{}
    99  	err = res.One(&hero)
   100  	if err != nil {
   101  		fmt.Printf("Error scanning database result: %s", err)
   102  		return
   103  	}
   104  	fmt.Print(hero["name"])
   105  
   106  	// Output: Superman
   107  }
   108  
   109  // Find all document with an indexed value.
   110  func ExampleTerm_GetAllByIndex() {
   111  	// Fetch the row from the database
   112  	res, err := r.DB("examples").Table("heroes").GetAllByIndex("code_name", "man_of_steel").Run(session)
   113  	if err != nil {
   114  		fmt.Print(err)
   115  		return
   116  	}
   117  	defer res.Close()
   118  
   119  	if res.IsNil() {
   120  		fmt.Print("Row not found")
   121  		return
   122  	}
   123  
   124  	var hero map[string]interface{}
   125  	err = res.One(&hero)
   126  	if err != nil {
   127  		fmt.Printf("Error scanning database result: %s", err)
   128  		return
   129  	}
   130  	fmt.Print(hero["name"])
   131  
   132  	// Output: Superman
   133  }
   134  
   135  // Find a document and merge another document with it.
   136  func ExampleTerm_Get_merge() {
   137  	// Fetch the row from the database
   138  	res, err := r.DB("examples").Table("heroes").Get(4).Merge(map[string]interface{}{
   139  		"powers": []string{"speed"},
   140  	}).Run(session)
   141  	if err != nil {
   142  		fmt.Print(err)
   143  		return
   144  	}
   145  	defer res.Close()
   146  
   147  	if res.IsNil() {
   148  		fmt.Print("Row not found")
   149  		return
   150  	}
   151  
   152  	var hero map[string]interface{}
   153  	err = res.One(&hero)
   154  	if err != nil {
   155  		fmt.Printf("Error scanning database result: %s", err)
   156  		return
   157  	}
   158  	fmt.Printf("%s: %v", hero["name"], hero["powers"])
   159  
   160  	// Output: The Flash: [speed]
   161  }
   162  
   163  // Get all users who are 30 years old.
   164  func ExampleTerm_Filter() {
   165  	// Fetch the row from the database
   166  	res, err := r.DB("examples").Table("users").Filter(map[string]interface{}{
   167  		"age": 30,
   168  	}).Run(session)
   169  	if err != nil {
   170  		fmt.Print(err)
   171  		return
   172  	}
   173  	defer res.Close()
   174  
   175  	// Scan query result into the person variable
   176  	var users []interface{}
   177  	err = res.All(&users)
   178  	if err != nil {
   179  		fmt.Printf("Error scanning database result: %s", err)
   180  		return
   181  	}
   182  	fmt.Printf("%d users", len(users))
   183  
   184  	// Output: 2 users
   185  }
   186  
   187  // Get all users who are more than 25 years old.
   188  func ExampleTerm_Filter_row() {
   189  	// Fetch the row from the database
   190  	res, err := r.DB("examples").Table("users").Filter(r.Row.Field("age").Gt(25)).Run(session)
   191  	if err != nil {
   192  		fmt.Print(err)
   193  		return
   194  	}
   195  	defer res.Close()
   196  
   197  	// Scan query result into the person variable
   198  	var users []interface{}
   199  	err = res.All(&users)
   200  	if err != nil {
   201  		fmt.Printf("Error scanning database result: %s", err)
   202  		return
   203  	}
   204  	fmt.Printf("%d users", len(users))
   205  
   206  	// Output: 3 users
   207  }
   208  
   209  // Retrieve all users who have a gmail account (whose field email ends with @gmail.com).
   210  func ExampleTerm_Filter_function() {
   211  	// Fetch the row from the database
   212  	res, err := r.DB("examples").Table("users").Filter(func(user r.Term) r.Term {
   213  		return user.Field("email").Match("@gmail.com$")
   214  	}).Run(session)
   215  	if err != nil {
   216  		fmt.Print(err)
   217  		return
   218  	}
   219  	defer res.Close()
   220  
   221  	// Scan query result into the person variable
   222  	var users []interface{}
   223  	err = res.All(&users)
   224  	if err != nil {
   225  		fmt.Printf("Error scanning database result: %s", err)
   226  		return
   227  	}
   228  	fmt.Printf("%d users", len(users))
   229  
   230  	// Output: 1 users
   231  }