Spec-Zone.ru › RethinkDB java

Команда ReQL: getAll

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

table.getAll([key, key2...]) → selection

Описание

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

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

r.table("marvel").getAll("man_of_steel").optArg("index", "code_name").run(conn);

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

r.table("dc").getAll("superman").run(conn);

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

r.table("dc").getAll("superman", "ant man").run(conn);

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

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

r.do(
    r.table("heroes").getAll("f").optArg("index", "gender")
        .g("id").coerceTo("array"),
    heroines -> r.table("villains").getAll(r.args(heroines))
).run(conn);

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

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

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

  • get
  • between

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

Spec-Zone.ru

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