Spec-Zone.ru › RethinkDB java

Команда ReQL: map

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

sequence1.map([sequence2, ...], function) → stream
array1.map([array2, ...], function) → array
r.map(sequence1[, sequence2, ...], function) → stream
r.map(array1[, array2, ...], function) → array

Описание

Преобразует каждый элемент одного или нескольких последовательностей, применяя к ним функцию преобразования. Если map используется с двумя или более последовательностями, она будет итерировать столько элементов, сколько их в самой короткой последовательности.

Обратите внимание, что map может быть применена только к последовательностям, а не к отдельным значениям. Если вы хотите применить функцию к одному значению/выбору (включая массив), используйте команду do.

Пример: Возвращает первые пять квадратов.

r.expr(r.array(1, 2, 3, 4, 5)).map(val -> r.mul(val, val)).run(conn);

// Result:
[1, 4, 9, 16, 25]

Пример: Суммирует элементы трех последовательностей.

int[] sequence1 = { 100, 200, 300, 400 };
int[] sequence2 = { 10, 20, 30, 40 };
int[] sequence3 = { 1, 2, 3, 4 };
r.map(sequence1, sequence2, sequence3,
    (val1, val2, val3) -> r.add(val1, val2).add(val3)
).run(conn);

// Result:
[111, 222, 333, 444]

Пример: Переименовывает поле при получении документов, используя map и merge.

В этом примере поле id переименовывается в userId при получении документов из таблицы users.

r.table("users").map(
    doc -> doc.merge(r.hashMap("user_id", doc.g("id"))).without("id")
).run(conn);

Пример: Присваивает каждому супергерою заклятого врага.

r.table("heroes").map(r.table("villains"),
    (hero, villain) -> hero.merge(r.hashMap("villain", villain))
).run(conn);

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

  • concatMap
  • reduce
  • do

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

Spec-Zone.ru

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