gpt4 book ai didi

node.js - Sequelize : delete JSONB property (with PostgreSQL)

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:38 27 4
gpt4 key购买 nike

我正在使用 sequelize (v3.12.2),带有 pg (4.4.3), PostgreSQL (v9.4) 和 Node (v4.1.2).

我有一个包含 JSONB 数据类型字段的模型。

var User = {
data: {
type: Sequelize.JSONB
}

现在我可以做

User.findOne({where: {id: 12345}})
.update({data: {x: 'foo'}});

User.findOne({where: {id: 12345}})
.update({'data.y': 'bar'});

现在,如果我只想删除 data.x 属性,我该如何在一条命令中完成?

User.findOne({where: {id: 12345}})
.update({'data.x': null});

显然行不通。事实上,结果数据对象应该是:

{y: 'bar'}

而不是:

{x: null, y: 'bar'}

我如何使用 Sequelize 做到这一点?感谢您的帮助!

最佳答案

如果@Tarun Lalwani 的代码不起作用,可能您的 postgresql 9.4 不支持“-”操作。

在这种情况下,您可以选择创建函数或升级到 9.5+。

PostgreSQL: Remove attribute from JSON column

关于node.js - Sequelize : delete JSONB property (with PostgreSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33241611/

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