Команда ReQL: with_fields
Синтаксис команды
sequence.with_fields([selector1, selector2...]) → stream array.with_fields([selector1, selector2...]) → array
Описание
Извлекает одно или несколько атрибутов из последовательности объектов, отфильтровывая объекты, у которых отсутствуют указанные поля. Функционально, это идентично has_fields, за которым следует pluck для последовательности.
Пример: Получить список пользователей и их постов, исключая пользователей, которые не создали постов.
Структура существующей таблицы:
[
{ 'id': 1, 'user': 'bob', 'email': 'bob@foo.com', 'posts': [ 1, 4, 5 ] },
{ 'id': 2, 'user': 'george', 'email': 'george@foo.com' },
{ 'id': 3, 'user': 'jane', 'email': 'jane@foo.com', 'posts': [ 2, 3, 6 ] }
]
Команда и вывод:
r.table('users').with_fields('id', 'user', 'posts').run(conn)
[
{ 'id': 1, 'user': 'bob', 'posts': [ 1, 4, 5 ] },
{ 'id': 3, 'user': 'jane', 'posts': [ 2, 3, 6 ] }
]
Пример: Используйте синтаксис вложенных полей, чтобы получить список пользователей с номерами сотовых телефонов в их контактах.
r.table('users').with_fields('id', 'user', {contact: {'phone': 'work'}).run(conn)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/python/with_fields/