gpt4 book ai didi

servicestack - JSONB - 按索引更新数组值

转载 作者:行者123 更新时间:2023-12-04 10:33:10 26 4
gpt4 key购买 nike

如何通过索引更新 JSON(B) 数组值?还要检索 JSONB 数组中每个值的索引?

有 ServiceStack ORMLite 模型:

  public class Page
{
[AutoIncrement]
public long Id { get; set; }

[PgSqlJsonB]
public List<Widget> Widgets { get; set; }
}

例如,如何更新 Widgets 列表中的第二项?

以下是如何在原始 Postgres SQL 中选择数组索引和按索引更新数组值的示例:
How to update objects inside JSONB

这个想法是使用 AutoQuery 选择数组索引并更新特定的 JSONB 数组值,知道它是数据库数组中的索引。

最佳答案

在 OrmLite 复杂类型中,如 List<Widget>是 blobbed,所以如果你在 C# 中更改值并保存它,它将序列化整个 Widgets属性为 JSON 并更新整个字段。

如果您想使用 PostgreSQL native 函数来操作服务器端查询中的列内容,您需要使用 Custom SQL APIs ,例如:

db.Execute("UPDATE page SET widgets = jsonb_set(widgets, ...) WHERE id = @id", 
new { id });

关于servicestack - JSONB - 按索引更新数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60320925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com