Команда 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(lambda battle:
(battle['winner'] == 'ironman') & (battle['loser'] == 'superman')
).run(conn)
Пример: Возвратить всех героев, которые сражались как с Локи, так и с Халком.
r.table('marvel').filter(
lambda hero: hero['opponents'].contains('loki', 'hulk')
).run(conn)
Пример: Использовать contains с предикативной функцией для моделирования or. Возвратить героев Marvel, которые живут в Детройте, Чикаго или Хобокене.
r.table('marvel').filter(
lambda 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/python/contains/