Spec-Zone.ru › RethinkDB python

Команда 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)

Связанные команды

  • connect
  • repl

© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/python/run/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API