2017-10-10 62 views
1

我在PostgreSQL数据库中有一个JSONB列,如{lat: value, lon: value}。我想一次改变任何特定的值,例如。拉特,但我不知道如何使用bookshelf.js或knex.js来实现这一点。我尝试使用Postgres文档中指定的jsonb_set()方法,但我不确定是否正确使用了该方法。有人可以建议我怎么做到这一点?或者什么是正确的语法来做到这一点?谢谢。如何使用knexjs更新JSONB列,bookshelfjs

回答

1

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

+0

谢谢!这对我有效。 –