set()

Assigns a value as a parameter for this connection.

Method Syntax

db.set(key, value)

This is equivalent to using a LET statement in SurrealQL, such as this one.

LET $name = {
first: "Tobie",
last: "Morgan Hitchcock",
};

Arguments

ArgumentDescription
key Specifies the name of the variable.
val Assigns the value to the variable name.

Example usage

use surrealdb::Surreal;
use surrealdb::engine::remote::ws::Ws;
use surrealdb::opt::auth::Root;
use surrealdb_types::SurrealValue;

#[derive(Debug, SurrealValue)]
struct Name {
first: String,
last: String,
}

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

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

db.use_ns("main").use_db("main").await?;

// Assign the variable on the connection
db.set(
"name",
Name {
first: "Tobie".to_string(),
last: "Morgan Hitchcock".to_string(),
},
)
.await?;
// Use the variable in a subsequent query
let create = db.query("CREATE person SET name = $name").await?;
dbg!(create);
// Use the variable in a subsequent query
let select = db
.query("SELECT * FROM person WHERE name.first = $name.first")
.await?;
dbg!(select);
Ok(())
}

See also