The Datastore API provides functions for interacting with a key-value store that has query capabilities.
- Keys are represented as a list (Lua table) of strings.
- Values can be any persistable value.
datastore.batchDelete
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
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
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
datastore.delete(key)
Deletes a value from the key-value store.
Parameters:
key(table) — Key segments.
Example:
datastore.delete({"user", "123"})datastore.get
datastore.get(key)
Gets a value from the key-value store.
Parameters:
key(table) — Key segments.
Returns:
- Value — Stored value, or nil when absent.
Example:
local user = datastore.get({"user", "123"})datastore.query
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
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
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"})