node.js - 如何使用 Bookshelf/Knex 在 Postgres 中插入/更新 `ARRAY` 列

标签 node.js postgresql knex.js bookshelf.js

我的 Postgres 数据库中有一个表,其中包含一个数据类型为 ARRAY 的列。我正在使用 Bookshelf 对数据库执行操作。现在,我想在此列中插入/更新(将新数据附加到数组中的先前数据)数据,但我找不到执行此操作的方法。谁能指导我如何实现这一目标? 我认为,一种方法是使用 Knex 的 raw() 函数,但我不确定如何使用 raw() 函数,所以请指导我也。 谢谢。

最佳答案

我找到了这个问题的解决方案 here .似乎 BookshelfJS 没有办法处理此类操作,所以我不得不使用 KnexJS。我是这样实现的 -

knex('users')                               //users table
        .where('id', id)
        .update({
            array_column_name: knex.raw('array_append(array_column_name, ?)', [data_to_append])
        })
        .then(function (user) {
            //Do something 
        });

希望这对以后的其他人有帮助。

关于node.js - 如何使用 Bookshelf/Knex 在 Postgres 中插入/更新 `ARRAY` 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44710167/

相关文章:

node.js - mocha 在测试完成后挂起

node.js - 重定向到新页面以响应 Socket.IO 事件

sql - 如何检查序列是否大于某个数字,以及是否在Postgres中进行更改

postgresql - 将Cast语法从PostgreSQL转换为Hive

sql - 迁移中的 KnexJS 原始查询

sql - 根据 Knex 中的列仅选择不同的行

javascript - 访问 Express 中的 get 请求返回的对象中的元素时遇到问题

node.js - 使用 Github 包作为 npm Node 模块时的 Firebase 云功能部署问题

node.js - 在redis中查找键/值

Postgresql 非常慢的查询