如何使用 Sequelize + PostgreSQL 将项目附加到数组值
Posted
技术标签:
【中文标题】如何使用 Sequelize + PostgreSQL 将项目附加到数组值【英文标题】:how to append item to an array value with Sequelize + PostgreSQL 【发布时间】:2017-10-13 06:13:13 【问题描述】:我有一个 posgresql 数据库,表中有一列是一个数组:Sequelize.ARRAY(Sequelize.BIGINT)
。
向数组追加新项目的正确方法是什么?
我是 posgresql、sequelize 和 nodejs 的新手。也许这是一个微不足道的问题。 通过阅读,我想我知道如何使用 Promise.all 来读取所有行、追加和更新。 问题,是不是有什么好用的捷径。
PostreSQL documentation 提到了一个函数array_append(anyarray, anyelement)
。
Sequelize documentation offers 一个函数 fn,其中 Creates an object representing a database function
,但似乎只在 where and order parts
中工作
有什么方法可以将它们组合起来进行类似追加的更新?
【问题讨论】:
【参考方案1】:Array Datatype 有许多方法,如 append、concat 等,您可以看到 here。我将举一个array_append
函数的例子。
Room
是一个续集模型,job_ids
是该模型中的一列,数据类型为整数数组。 sequelize
是 Sequelize 类的一个瞬间。
Room.update(
'job_ids': sequelize.fn('array_append', sequelize.col('job_ids'), new_jobId),
'where': 'id': roomId
);
假设此列的默认值为空数组,否则可能会引发错误。
【讨论】:
以上是关于如何使用 Sequelize + PostgreSQL 将项目附加到数组值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Sequelize Postgres 中使用小写函数
Sequelize Postgres - 如何使用 ON CONFLICT 来实现独特的?
用户如何使用 sequelize postgres nodejs 互相喜欢和不同?