select()

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

Method Syntax

db.select(resource)

Arguments

ArgumentDescription
resource The table name or a record ID to select.

Example usage

// Select all records from a table
let people: Vec<Person> = db.select("person").await?;
// Select a specific record from a table
let person: Option<Person> = db.select(("person", "h5wxrf2ewk8xjxosxtyc")).await?;

Example usage: Retrieve unique id of a record

use surrealdb::Surreal;
use surrealdb::engine::remote::ws::Ws;
use surrealdb::opt::auth::Root;
use surrealdb_types::{RecordId, SurrealValue};

#[derive(Debug, SurrealValue)]
struct Person {
id: RecordId,
name: String,
age: u8,
}

#[tokio::main]
async fn main() -> surrealdb::Result<()> {
// Connect to the database
let db = Surreal::new::<Ws>("localhost:8000").await?;

// Sign in
db.signin(Root {
username: "root".to_string(),
password: "secret".to_string(),
})
.await?;

// Select namespace and database to use
db.use_ns("main").use_db("main").await?;

// Create a person
db.query("CREATE person:john SET name = 'John Doe', age = 25")
.await?
.check()?;

// Query that person
let john: Option<Person> = db.select(("person", "john")).await?;
dbg!(john);

Ok(())
}

Translated query

This function will run the following query in the database:

SELECT * FROM $resource;

See also