Spec-Zone.ru › RethinkDB javascript

Команда ReQL: getAll

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

table.getAll([key, key2...], [, {index:'id'}]) → selection

Описание

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

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

r.table('marvel').getAll('man_of_steel', {index:'code_name'}).run(conn, callback)

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

r.table('dc').getAll('superman').run(conn, callback)

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

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

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

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

r.do(
    r.table('heroes').getAll('f', {index: 'gender'})('id').coerceTo('array'),
    function(heroines) {
        return r.table('villains').getAll(r.args(heroines));
    }
).run(conn, callback)

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

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

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

  • get
  • between

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

Spec-Zone.ru

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