Record functions
Record functions before SurrealDB 2.0 were located inside the module meta.
These functions can be used to retrieve specific metadata from a SurrealDB Record ID.
Function | Description |
---|---|
record::exists() | Checks to see if a SurrealDB Record ID exists |
record::id() | Extracts and returns the table id from a SurrealDB Record ID |
record::tb() | Extracts and returns the table name from a SurrealDB Record ID |
record::exists
The record::exists
function checks to see if a given record exists.
API DEFINITIONrecord::exists(record) -> bool
A simple example showing the output of this function when a record does not exist and when it does:
RETURN record::exists(r"person:tobie");
-- false
CREATE person:tobie;
RETURN record::exists(r"person:tobie");
-- true
A longer example of record::exists
using method syntax:
FOR $person IN ["Haakon_VII", "Ferdinand_I", "Manuel_II", "Wilhelm_II", "George_I", "Albert_I", "Alfonso_XIII", "George_V", "Frederick_VIII"] {
LET $record_name = type::thing("person", $person.lowercase());
IF !$record_name.exists() {
CREATE $record_name;
}
}
record::id
The record::id
function extracts and returns the table id from a SurrealDB Record ID.
API DEFINITIONrecord::id(record) -> value
The following example shows this function, and its output, when used in a RETURN
statement:
RETURN record::id(person:tobie);
"tobie"
record::tb
The record::tb
function extracts and returns the table name from a SurrealDB Record ID.
API DEFINITIONrecord::tb(record) -> string
The following example shows this function, and its output, when used in a RETURN
statement:
RETURN record::tb(person:tobie);
"person"
Method chaining
Available since: v2.0.0
Method chaining allows functions to be called using the .
dot operator on a value of a certain type instead of the full path of the function followed by the value.
-- Traditional syntax
record::id(r"person:aeon");
-- Method chaining syntax
r"person:aeon".id();
Response'aeon'
This is particularly useful for readability when a function is called multiple times.
-- Traditional syntax
record::table(array::max([r"person:aeon", r"person:landevin"]));
-- Method chaining syntax
[r"person:aeon", r"person:landevin"].max().table();
Response'person'