Spec-Zone.ru › Nushell

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API