如何使用knexjs更新JSONB列,bookshelfjs
问题描述:
我在PostgreSQL数据库中有一个JSONB列,如{lat: value, lon: value}
。我想一次改变任何特定的值,例如。拉特,但我不知道如何使用bookshelf.js或knex.js来实现这一点。我尝试使用Postgres文档中指定的jsonb_set()
方法,但我不确定是否正确使用了该方法。有人可以建议我怎么做到这一点?或者什么是正确的语法来做到这一点?谢谢。如何使用knexjs更新JSONB列,bookshelfjs
答
AFAIK只支持基于knex的东西,支持写入和从postgresql jsonb列中提取数据是objection.js ORM。
带滑动knex您需要使用原始写引用:
knex('table').update({
jsonbColumn: knex.raw(`jsonb_set(??, '{lat}', ?)`, ['jsonbColumn', newLatValue])
})
您可以点击这里生成的SQL https://runkit.com/embed/44ifdhzxejf1
原本在回答:https://github.com/tgriesser/knex/issues/2264
更多示例如何与使用jsonb_set knex可在以下答案中找到
How to update a jsonb column's field in PostgreSQL?
What is the best way to use PostgreSQL JSON types with NodeJS
谢谢!这对我有效。 –