space_object:pairs()
-
object
space_object
¶ -
space_object:
pairs
([key[, iterator]])¶ Поиск кортежа или набора кортежей в заданном спейсе и итерация по одному кортежу за раз.
Параметры: - space_object (
space_object
) – ссылка на объект - key (
scalar/table
) – значение должно совпасть с индексным ключом, который может быть составным - iterator – см. index_object:pairs()
возвращает: итератор, который может использовать в цикле for/end или с функцией totable()
Возможные ошибки:
- Нет такого спейса.
- Неправильный тип.
ER_TRANSACTION_CONFLICT
, если транзакция стала конфликтной в транзакционном режиме MVCC.
Факторы сложности: Размер индекса, тип индекса.
Чтобы посмотреть примеры сложных запросов
pairs
, где можно указать индекс для поиска и используемое условие (например, «больше чем» вместо «равен»), см. раздел далее по тексту index_object:pairs().Для получения информации о внутренней структуре итераторов см. документацию по библиотеке для функционального программирования в Lua «Lua Functional library».
Пример:
tarantool> s = box.schema.space.create('space33') --- ... tarantool> -- в индексе 'X' количество частей по умолчанию {1, 'unsigned'} tarantool> s:create_index('X', {}) --- ... tarantool> s:insert{0, 'Hello my '}, s:insert{1, 'Lua world'} --- - [0, 'Hello my '] - [1, 'Lua world'] ... tarantool> tmp = '' --- ... tarantool> for k, v in s:pairs() do > tmp = tmp .. v[2] > end --- ... tarantool> tmp --- - Hello my Lua world ...
- space_object (
-