Преобразование project

Преобразование project выполняет проекцию в смысле реляционной алгебры: создаёт поток новых объектов, содержащих выбранные поля исходных данных. Скопированные поля можно переименовать. Не путайте это преобразование с картографическими проекциями.

Параметры преобразования

Свойство Тип Описание
fields Field[ ] Поля данных, которые нужно скопировать. Если не заданы, копируются все поля с исходными именами.
as String[ ] Имена соответствующих выходных полей для элементов массива fields.

Использование

{"type": "project", "fields": ["foo", "bar"]}

Создаёт поток объектов только с полями "foo" и "bar".

{"type": "project", "fields": ["foo", "bar"], "as": ["a", "b"]}

Создаёт поток объектов с полями "a" и "b", в которые записаны значения исходных полей "foo" и "bar" соответственно.

project также извлекает вложенные свойства. Например, пусть есть следующие данные:

[
  {"foo": {"a": 5, "b": "abc"}, "bar": 0},
  {"foo": {"a": 6, "b": "def"}, "bar": 1},
  {"foo": {"a": 7, "b": "ghi"}, "bar": 2}
]

Чтобы перенести поле "bar" и вложенные поля "a" и "b" в новые объекты, примените преобразование:

{
  "type": "project",
  "fields": ["bar", "foo.a", "foo.b"],
  "as": ["bar", "a", "b"]
}

Результат:

[
  {"bar":0, "a":5, "b":"abc"},
  {"bar":1, "a":6, "b":"def"},
  {"bar":2, "a":7, "b":"ghi"}
]