SurrealDB
SurrealDB Docs Logo

Enter a search query

.Select[T, R](resource)

Selects all records in a table, or a specific record, from the database.

Method Syntax
db.Select[T, R](resource)

Arguments

ArgumentsDescription
resource required

The table name (as models.Table) for selecting all records or a RecordID (as models.RecordID) to select a single record.

T required

The type to deserialize the result into, such as Person for a single record or []Person for an array of records.

R required

The type of the resource parameter—use models.RecordID for a single record or models.Table for an entire table.

Example usage

package main import ( "context" "fmt" surrealdb "github.com/surrealdb/surrealdb.go" "github.com/surrealdb/surrealdb.go/contrib/testenv" "github.com/surrealdb/surrealdb.go/pkg/models" ) func ExampleSelect() { db := testenv.MustNew("surrealdbexamples", "update", "person") type Person struct { ID models.RecordID `json:"id,omitempty"` } a := Person{ID: models.NewRecordID("person", "a")} b := Person{ID: models.NewRecordID("person", "b")} for _, p := range []Person{a, b} { created, err := surrealdb.Create[Person]( context.Background(), db, p.ID, map[string]any{}, ) if err != nil { panic(err) } fmt.Printf("Created person: %+v\n", *created) } selectedOneUsingSelect, err := surrealdb.Select[Person]( context.Background(), db, a.ID, ) if err != nil { panic(err) } fmt.Printf("selectedOneUsingSelect: %+v\n", *selectedOneUsingSelect) selectedMultiUsingSelect, err := surrealdb.Select[[]Person]( context.Background(), db, "person", ) if err != nil { panic(err) } for _, p := range *selectedMultiUsingSelect { fmt.Printf("selectedMultiUsingSelect: %+v\n", p) } // Output: // Created person: {ID:{Table:person ID:a}} // Created person: {ID:{Table:person ID:b}} // selectedOneUsingSelect: {ID:{Table:person ID:a}} // selectedMultiUsingSelect: {ID:{Table:person ID:a}} // selectedMultiUsingSelect: {ID:{Table:person ID:b}} }
Edit this page on GitHub