Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

pairs

pairs([key [, iterator]])

Поиск кортежа или набора кортежей в заданном пространстве с возможностью поочередного перебора кортежей. Для поиска по конкретному индексу используйте метод box_index-pairs.

Параметры:

  • space_object (space_object) — ссылка на объект

  • key (scalar/table) — значение для сопоставления с ключом индекса, которое может быть составным

  • iteratorтип итератора. По умолчанию используется тип 'EQ'

  • after — кортеж или позиция кортежа (tuple_pos), после которого pairs начинает поиск. Можно передать пустую строку или box.NULL, чтобы начать поиск с первого кортежа.

Возвращает

Итератор, который можно использовать в цикле for/end или с totable().

  • пространство не найдено
  • неверный тип
  • ER_TRANSACTION_CONFLICT — при обнаружении конфликта транзакций в режиме MVCC-транзакций
  • недопустимая позиция итератора

Факторы сложности: размер индекса, тип индекса.

Сведения о внутренних структурах итераторов см. в документации "Lua Functional library".

Примеры:

Ниже приведено несколько примеров использования pairs с различными параметрами. Для выполнения этих примеров необходимо выполнить начальную загрузку экземпляра Tarantool, как описано в Использование операций с данными.

-- Вставка тестовых данных --tarantool> bands:insert{1, 'Roxette', 1986}           bands:insert{2, 'Scorpions', 1965}           bands:insert{3, 'Ace of Base', 1987}           bands:insert{4, 'The Beatles', 1960}           bands:insert{5, 'Pink Floyd', 1965}           bands:insert{6, 'The Rolling Stones', 1962}           bands:insert{7, 'The Doors', 1965}           bands:insert{8, 'Nirvana', 1987}           bands:insert{9, 'Led Zeppelin', 1968}           bands:insert{10, 'Queen', 1970}---...-- Выборка всех кортежей по первичному индексу --tarantool> for _, tuple in bands:pairs() do               print(tuple)           end[1, 'Roxette', 1986][2, 'Scorpions', 1965][3, 'Ace of Base', 1987][4, 'The Beatles', 1960][5, 'Pink Floyd', 1965][6, 'The Rolling Stones', 1962][7, 'The Doors', 1965][8, 'Nirvana', 1987][9, 'Led Zeppelin', 1968][10, 'Queen', 1970]---...-- Выборка всех кортежей со значениями первичного ключа от 3 до 6 --tarantool> for _, tuple in bands:pairs(3, {iterator = "GE"}) do             if (tuple[1] > 6) then break end             print(tuple)           end[3, 'Ace of Base', 1987][4, 'The Beatles', 1960][5, 'Pink Floyd', 1965][6, 'The Rolling Stones', 1962]---...-- Выборка всех кортежей после указанного кортежа --tarantool> for _, tuple in bands:pairs({}, {after={7, 'The Doors', 1965}}) do               print(tuple)           end[8, 'Nirvana', 1987][9, 'Led Zeppelin', 1968][10, 'Queen', 1970]---...