Команда ReQL: contains
Синтаксис команды
sequence.contains([value | predicate_function, ...]) → bool r.contains(sequence, [value | predicate_function, ...]) → bool
Описание
При вызове со значениями, возвращает true если последовательность содержит все указанные значения. При вызове с предикатными функциями, возвращает true если для каждого предиката существует хотя бы один элемент потока, где этот предикат возвращает true.
Значения и предикаты могут быть смешаны в списке аргументов.
Пример: Был ли Железный Человек когда-либо в бою с Суперменом?
r.table('marvel').get('ironman')[:opponents].contains('superman').run(conn)
Пример: Был ли Железный Человек когда-либо побеждён Суперменом в бою?
r.table('marvel').get('ironman')[:battles].contains{|battle|
battle[:winner].eq('ironman') & battle[:loser].eq('superman')
}.run(conn)
Пример: Вернуть всех героев, которые сражались и с Локи, и с Халком.
r.table('marvel').filter{ |hero|
hero[:opponents].contains('loki', 'hulk')
}.run(conn)
Пример: Используйте contains с предикатной функцией для моделирования or. Вернуть всех супергероев Marvel, которые живут в Детройте, Чикаго или Хобокене.
r.table('marvel').filter { |hero|
r.expr(['Detroit', 'Chicago', 'Hoboken']).contains(hero['city'])
}.run(conn)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/ruby/contains/