.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
| Arguments | Description |
|---|
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)
}
}