Команда ReQL: run
Синтаксис команды
query.run(conn[, options]) → cursor query.run(conn[, options]) → object
Описание
Выполняет запрос к подключению, возвращая либо единственный результат JSON, либо курсор, в зависимости от запроса.
Дополнительные аргументы:
-
read_mode: Одно из трёх возможных значений, влияющих на гарантию согласованности запроса (по умолчанию:'single').-
'single'(по умолчанию) возвращает значения, которые находятся в памяти (но не обязательно записаны на диск) на первичной реплике. -
'majority'вернёт только значения, безопасно сохранённые на диске на большинстве реплик. Это требует отправки сообщения каждой реплике при каждом чтении, поэтому это самый медленный, но самый надёжный вариант. -
'outdated'вернёт значения, которые находятся в памяти на произвольно выбранной реплике. Это самый быстрый, но наименее надёжный вариант.
-
-
time_format: формат, в котором возвращаются временные значения (по умолчанию:'native'). Установите это значение в'raw'если вы хотите, чтобы временные значения возвращались как JSON объекты для экспорта. -
profile: флаг, указывающий на необходимость возврата профиля выполнения запроса (по умолчанию:False). -
durability: возможные значения'hard'и'soft'. В режиме мягкой надёжности RethinkDB подтвердит запись сразу после её получения, но до записи на диск. -
group_format: формат, в котором возвращаютсяgrouped_dataиgrouped_streams(по умолчанию:'native'). Установите это значение в'raw'если вы хотите получить сырой псевдотип. -
noreply: установите вTrueдля того, чтобы не получать объект результата или курсор и вернуть результат немедленно. -
db: база данных, на которой нужно выполнить запрос в виде строки. По умолчанию - база данных, заданная в параметреdbдля connect (по умолчаниюtest). Базу данных также можно задать командой db. -
array_limit: максимальное количество элементов массива, которые могут быть возвращены запросом (по умолчанию: 100 000). Это влияет на все команды ReQL, возвращающие массивы. Обратите внимание, что это не влияет на размер массивов, записываемых в базу данных; для них всегда существует верхний предел в 100 000 элементов. -
binary_format: формат возвращаемых двоичных данных (по умолчанию:'native'). Установите это значение в'raw'если вы хотите получить сырой псевдотип. -
min_batch_rows: минимальное количество строк, ожидаемых до пакетной обработки набора результатов (по умолчанию: 8). Это целое число. -
max_batch_rows: максимальное количество строк, ожидаемых до пакетной обработки набора результатов (по умолчанию: не ограничено). Это целое число. -
max_batch_bytes: максимальное количество байтов, ожидаемых до пакетной обработки набора результатов (по умолчанию: 1 МБ). Это целое число. -
max_batch_seconds: максимальное время в секундах ожидания перед пакетной обработкой набора результатов (по умолчанию: 0,5). Это число с плавающей точкой (не целое число) и может быть указано до микросекунд. -
first_batch_scaledown_factor: коэффициент для уменьшения других параметров в первом пакете (по умолчанию: 4). Например, если это значение 8, аmax_batch_rows- 80, в первом пакетеmax_batch_rowsбудет скорректировано до 10 (80 / 8). Это позволяет первому пакету возвращаться быстрее.
Пример: Выполняет запрос к подключению conn и выводит каждую строку в результате.
for doc in r.table('marvel').run(conn):
print doc
Пример: Если вы согласны с потенциально устаревшими данными из всех таблиц, участвующих в этом запросе, и хотите потенциально более быстрое чтение, передайте флаг, разрешающий устаревшие данные в объекте параметров. Настройки для отдельных таблиц будут иметь приоритет над этой глобальной настройкой для всех таблиц в запросе.
r.table('marvel').run(conn, read_mode='outdated')
Пример: Если вам нужно только отправить запись и забыть о ней, вы можете установить noreply в значение true в параметрах. В этом случае run вернётся немедленно.
r.table('marvel').run(conn, noreply=True)
Пример: Если вы хотите указать, ожидать ли записи на диске (переопределяя настройки по умолчанию для таблицы), вы можете установить durability в 'hard' или 'soft' в параметрах.
r.table('marvel')
.insert({ 'superhero': 'Iron Man', 'superpower': 'Arc Reactor' })
.run(conn, noreply=True, durability='soft')
Пример: Если вы не хотите, чтобы объект времени конвертировался в объект даты, вы можете передать флаг time_format, чтобы предотвратить это («raw» или «native»). Этот запрос возвращает объект с двумя полями (epoch_time и $reql_type$ вместо объекта даты.
r.now().run(conn, time_format="raw")
Пример: Укажите базу данных для использования в запросе.
for doc in r.table('marvel').run(conn, db='heroes'):
print doc
Это эквивалентно использованию команды db для указания базы данных:
r.db('heroes').table('marvel').run(conn) ...
Пример: Измените параметры пакетной обработки для этого запроса.
r.table('marvel').run(conn, max_batch_rows=16, max_batch_bytes=2048)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/python/run/