space_object:get()
-
object
space_object
¶ -
space_object:
get
(key)¶ Search for a tuple in the given space.
Parameters: - space_object (
space_object
) – an object reference - key (
scalar/table
) – value to be matched against the index key, which may be multi-part.
Return: the tuple whose index key matches
key
, ornil
.Rtype: tuple
Possible errors:
space_object
does not exist.ER_TRANSACTION_CONFLICT
if a transaction conflict is detected in the MVCC transaction mode.
Complexity factors: Index size, Index type, Number of indexes accessed, WAL settings.
The
box.space...select
function returns a set of tuples as a Lua table; thebox.space...get
function returns at most a single tuple. And it is possible to get the first tuple in a space by appending[1]
. Thereforebox.space.tester:get{1}
has the same effect asbox.space.tester:select{1}[1]
, if exactly one tuple is found.Example:
box.space.tester:get{1}
Using field names instead of field numbers:
get()
can use field names described by the optional space_object:format() clause. This is true because the object returned byget()
can be used with most of the features described in the Submodule box.tuple description, including tuple_object[field-name].For example, we can format the
tester
space with a field namedx
and use the namex
in the index definition:box.space.tester:format({{name='x',type='scalar'}}) box.space.tester:create_index('I',{parts={'x'}})
Then, if
get
orselect
retrieves a single tuple, we can reference the field ‘x’ in the tuple by its name:box.space.tester:get{1}['x'] box.space.tester:select{1}[1]['x']
- space_object (
-