Postgresql Feather.js+;续集+;postgres 11:如何修补jsonb列?

Postgresql Feather.js+;续集+;postgres 11:如何修补jsonb列?,postgresql,sequelize.js,feathersjs,Postgresql,Sequelize.js,Feathersjs,我想用同一个对象更新数据库中的几行。 假设我有一列customText类型jsonb,其中包含一个对象数组 这里是我的续集模型: customText: { type: DataTypes.JSONB, allowNull: true, field: "custom_text" } 现在,我从客户端发送一个对象: const obj = {} const data = { textid: "d9fec1d4-0f7a-2c00

我想用同一个对象更新数据库中的几行。 假设我有一列customText类型jsonb,其中包含一个对象数组

这里是我的续集模型:

  customText: {
    type: DataTypes.JSONB,
    allowNull: true,
    field: "custom_text"
  }
现在,我从客户端发送一个对象:

const obj = {}        
const data = {
          textid: "d9fec1d4-0f7a-2c00-9d36-0c5055d64d04",
          textLabel: null,
          textValue: null
        };

    obj.customText = data
    api.service("activity").patch(null, obj).catch(err => console.log(err));
如前所述,如果我想替换多个记录,我会发送一个等于null的id

现在问题来了,如果我这样做的话,我的列customText将只包含新对象,但我需要一个对象数组,所以我想在数组中推送新数据。如何修补数据


我的猜测是使用a和a。但是我不知道该怎么做。

我不太确定我的答案,但这个钩子起作用了:

module.exports = function() {
  return async context => {
    debugger;
    const sequelize = context.app.get("sequelizeClient");
    const customText = JSON.stringify(context.data.customText[0]);
    console.log(customField);
    let query =
      "UPDATE activity SET custom_text = custom_text || '" +
      customText +
      "' ::jsonb";
    console.log(query);

    await sequelize
      .query(query)
      .then(results => {
        console.log(results);
        context.results = results;
      })
      .catch(err => console.log(err));

    return context;
我仍然有一个问题,因为在feathers中的这个钩子之后,补丁将继续,所以它将再次更新我的db。。所以我放了一个

还有,有了这个钩子,我失去了能力

此外,我还担心查询,我不确定是否最好使用:jsonb_insert over||