首页 > 解决方案 > 如何动态更新 jsonb 列

问题描述

举个例子,这是插入代码

exports.createPreference = async sid => {
    const query = `INSERT INTO preference(sid,data) VALUES('${sid}', ' [{
            "privacy": "public",
            "collect_my_data": "false",
            "share_my_location": "false",
            "currency": "USD",
            "theme": "light",
            "language": "en",
            "notification": "false"
        }]'
        )`;

    const result = await db.query(query);
    return result.rows[0]
};

这是更新代码

exports.updatePreference = async function(sid, preferences) {
    const query = `
      update preference set data = jsonb_set(data, '0', '"${preferences}"', false) 
      where sid = '${sid}' RETURNING data`;

    const result = await db.query(query);
    return result.rows[0];
};

我想用任何首选项参数更新数据列。它将是一个具有所有初始属性但值不同的对象,具体取决于用户所做的更改。

我已经尝试过它的方式,但它在我的邮递员中显示[Object Object]而不是对象的内容。

请问我该怎么做,我已经花了几个月的时间涉足它。

标签: node.jspostgresql-13

解决方案


推荐阅读