2017-10-10 63 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

謝謝!這對我有效。 –