Spec-Zone.ru › RethinkDB ruby

Команда 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([1, 2, 3, 4, 5]).map{ |val| (val * val) }.run(conn)

[1, 4, 9, 16, 25]

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

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

[111, 222, 333, 444]

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

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

r.table('users').map{ |doc|
    doc.merge({:user_id => doc['id']}).without('id')
}.run(conn)

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

r.table('heroes').map(r.table('villains')){ |hero, villain|
    hero.merge({:villain => villain})
}.run(conn)

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

  • concat_map
  • reduce
  • do

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

Spec-Zone.ru

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