我在PostgreSQL数据库中有一个JSONB列,如{lat: value, lon: value}
。我想一次更改任何特定值,例如稍后,但我不确定如何使用bookshelf.js或knex.js来实现这一点。我尝试使用Postgres文档中指定的jsonb_set()
方法,但我不确定我是否正确使用了该方法。有人能告诉我如何才能做到这一点吗?或者正确的语法是什么?谢谢。
我在PostgreSQL数据库中有一个JSONB列,如{lat: value, lon: value}
。我想一次更改任何特定值,例如稍后,但我不确定如何使用bookshelf.js或knex.js来实现这一点。我尝试使用Postgres文档中指定的jsonb_set()
方法,但我不确定我是否正确使用了该方法。有人能告诉我如何才能做到这一点吗?或者正确的语法是什么?谢谢。
3条答案
按热度按时间suzh9iv81#
AFAIK唯一一个支持向postgresql jsonb列写入数据和从其中提取数据的基于kinx的东西是objection.js ORM。
对于普通knex,需要使用raw来编写引用:
您可以在此处检查生成的SQL https://runkit.com/embed/44ifdhzxejf1
原来高翔回答道:https://github.com/tgriesser/knex/issues/2264
更多如何使用jsonb_set和knex的示例可以在以下答案中找到
如何在PostgreSQL中更新jsonb列的字段?
在NodeJS中使用PostgreSQL JSON类型的最佳方式是什么
twh00eeo2#
使用knex.js更新Jsonb字段
jsonbkey
将是列名,其中数据类型为jsonb。tablename
是表的名称。city
是对象键。如果有多个层次的对象,那么你可以使用dot.比如
'{city.id}'
uurv41yg3#
此knex查询通过覆盖提供给
||
运算符右侧的值中的特定键来帮助更新任何json列。请不要忘记使用::jsonb
对值进行类型转换