tags: api/syscall references:
The Datastore API provides functions for interacting with a key-value store that has query capabilities.
datastore.batchDelete(keys)
Deletes multiple values from the key-value store.
Parameters:
keys (table) — List of keys to delete.Example:
datastore.batchDelete({{"user", "1"}, {"user", "2"}})
datastore.batchGet(keys)
Gets multiple values from the key-value store.
Parameters:
keys (table) — List of keys to read.Returns:
table — Values in key order, with nil for missing keys.Example:
local values = datastore.batchGet({{"user", "1"}, {"user", "2"}})
datastore.batchSet(entries)
Sets multiple key-value entries in one operation.
Parameters:
entries (table) — Entries with key and value fields.Example:
datastore.batchSet({
{key = {"user", "1"}, value = {name = "Alice"}},
{key = {"user", "2"}, value = {name = "Bob"}},
})
datastore.delete(key)
Deletes a value from the key-value store.
Parameters:
key (table) — Key segments.Example:
datastore.delete({"user", "123"})
datastore.get(key)
Gets a value from the key-value store.
Parameters:
key (table) — Key segments.Returns:
Example:
local user = datastore.get({"user", "123"})
datastore.query(options)
Queries key-value entries, optionally restricted to a key prefix.
Parameters:
options (table) — Query options, including an optional prefix.Returns:
table — Matching key-value entries.datastore.queryLua(prefix, query, scopeVariables?)
Runs a Space Lua collection query over a key prefix.
Parameters:
prefix (table) — Key prefix to query.query (table) — Parsed collection query.scopeVariables? (table) — Additional variables available to the query.Returns:
table — Query results converted to Lua values.datastore.set(key, value)
Sets a value in the key-value store.
Parameters:
key (table) — Key segments.value — Value to store.Example:
datastore.set({"user", "123"}, {name = "John"})