我有一个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
是否可以将这些内容组合起来进行类似追加的更新?
答案 0 :(得分:5)
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}}
);
假设此列的默认值为空数组,则可能会引发错误。