upsert для фильтров
Обновить существующий столбец с новым значением или вставить новый столбец.
Подпись
> upsert {flags} (field) (replacement value)
Параметры
-
field: имя столбца для обновления или вставки -
replacement value: новое значение для ячейки(ей) или замыкание для создания значения
Типы входных/выходных данных:
| Вход | Выход |
|---|---|
| list<any> | list<any> |
| record | record |
| table | table |
Примеры
Обновить значение записи
> {'name':'nu', 'stars':5} |upsertname'Nushell'
╭───────┬─────────╮
│name│Nushell│
│stars│5│
╰───────┴─────────╯
Обновить каждую строку таблицы
> [[namelang]; [Nushell''] [Reedline'']] |upsertlang'Rust'
╭───┬──────────┬──────╮
│# │ name │ lang │
├───┼──────────┼──────┤
│0│Nushell│Rust│
│1│Reedline│Rust│
╰───┴──────────┴──────╯
Вставить новую запись в одну запись
> {'name':'nu', 'stars':5} |upsertlanguage'Rust'
╭──────────┬──────╮
│name│nu│
│stars│5│
│language│Rust│
╰──────────┴──────╯
Использовать в форме замыкания для более сложной логики обновления
> [[countfruit]; [1'apple']] |enumerate|upsertitem.count {|e| ($e.item.fruit|str length) +$e.index } |getitem
╭───┬───────┬───────╮
│# │ count │ fruit │
├───┼───────┼───────┤
│0│5│apple│
╰───┴───────┴───────╯
Добавить/обновить int в список, обновляя существующее значение на основе индекса
> [123] |upsert02
╭───┬───╮
│0│2│
│1│2│
│2│3│
╰───┴───╯
Добавить/обновить int в список, вставляя новое значение на основе индекса
> [123] |upsert34
╭───┬───╮
│0│1│
│1│2│
│2│3│
│3│4│
╰───┴───╯
Copyright © 2019–2023 The Nushell Project DevelopersLicensed under the MIT License.
https://www.nushell.sh/commands/docs/upsert.html