Saturday 7 September 2019

Sequelize: delete JSONB property (with PostgreSQL)

I'm using sequelize (v3.12.2), with pg (4.4.3), PostgreSQL (v9.4), and Node (v4.1.2).

I have a model that inlcudes a JSONB data type field.

var User = {
  data: {
    type: Sequelize.JSONB
}

Now I can do

User.findOne({where: {id: 12345}})
  .update({data: {x: 'foo'}});

And

User.findOne({where: {id: 12345}})
  .update({'data.y': 'bar'});

Now, if I want to delete just the data.x property how can I do it in one command?

User.findOne({where: {id: 12345}})
  .update({'data.x': null});

Obviously doesn't work. In fact, the resulting data object should be:

{y: 'bar'}

And not:

{x: null, y: 'bar'}

How can I do this with Sequelize? Thanks for your help!



from Sequelize: delete JSONB property (with PostgreSQL)

No comments:

Post a Comment