space_object:get()
-
object
space_object
-
space_object:
get
(key) Поиск кортежа в данном спейсе.
Параметры: - space_object (space_object) – ссылка на объект
- key (scalar/table) – значение должно совпасть с индексным ключом, который может быть составным.
возвращает: кортеж, ключ индекса в котором совпадает с
key
илиnil
.тип возвращаемого значения: tuple
Возможные ошибки:
space_object
не существуетФакторы сложности Размер индекса, тип индекса, количество индексов, к которым получен доступ, настройки журнала упреждающей записи (WAL).
Функция
box.space...select
вернет набор кортежей в виде Lua-таблицы; функцияbox.space...get
вернет самое большее один кортеж. Можно получить первый кортеж в спейсе, добавив[1]
. Таким образом,box.space.tester:get{1}
эквивалентнаbox.space.tester:select{1}[1]
, если найден только один кортеж.Пример:
box.space.tester:get{1}
Использование имен полей вместо номеров полей: в
get()
можно использовать имена полей, описанные в необязательном операторе space_object:format(). Это аналогично стандартной Lua-функции, где на компонент можно ссылаться по имени, а не по номеру. Например, может форматировать спейсtester
с полем под названиемx
и использовать имяx
в определении индекса:box.space.tester:format({{name='x',type='scalar'}}) box.space.tester:create_index('I',{parts={'x'}})
Тогда если
get
илиselect
вернут отдельный кортеж, можно сослаться на поле „x“ в кортеже по имени:box.space.tester:get{1}['x'] box.space.tester:select{1}[1]['x']
-