Spec-Zone.ru › RethinkDB python

Команда ReQL: get_all

Синтаксис команды

table.get_all([key1, key2...], [, index='id']) → selection

Описание

Получить все документы, где заданное значение соответствует значению запрошенного индекса.

Пример: Ключи вторичных индексов не гарантированно уникальны, поэтому мы не можем выполнить запрос с помощью get при использовании вторичного индекса.

r.table('marvel').get_all('man_of_steel', index='code_name').run(conn)

Пример: Без аргумента индекса используется первичный индекс. Хотя get вернёт документ или None при отсутствии документа с таким значением первичного ключа, это вернёт поток длиной один или ноль.

r.table('dc').get_all('superman').run(conn)

Пример: Вы можете получить несколько документов в одном вызове get_all.

r.table('dc').get_all('superman', 'ant man').run(conn)

Примечание: get_all не выполняет никакой дедупликации. Если вы передадите один и тот же ключ несколько раз, документ будет возвращён несколько раз.

Пример: Вы можете использовать args с get_all для извлечения нескольких документов, ключи которых находятся в списке. Это использует get_all для получения списка героинь-женщин, принудительно преобразует его в массив и затем получает список злодеев, у которых эти героини являются врагами.

r.do(
    r.table('heroes').get_all('f', index='gender')['id'].coerce_to('array'), 
    lamdba heroines: r.table('villains').get_all(r.args(heroines))
).run(conn)

Вызов get_all с нулевыми аргументами — что может произойти в этом примере, если в списке heroines нет элементов — не вернёт ничего, то есть вернёт поток нулевой длины.

Вторичные индексы могут быть использованы очень мощными способами с get_all и другими командами; прочитайте полную статью о вторичных индексах для примеров использования логических операций, contains и многого другого.

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

  • get
  • between
  • filter

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

Spec-Zone.ru

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