【发布时间】:2017-12-30 10:45:29
【问题描述】:
我正在寻找一种仅更新 jsonb 列内的嵌套键/值的方法。
这是User 模型:
const User= sequelize.define('User', {
id: DataTypes.INTEGER,
name:DataTypes.STRING,
// other fields
data: DataTypes.JSONB
});
当前data 列值:
{
'email':{'verified':false,'token':'random token'},
'phone:{'verified':true}
}
我想使用单个 update 查询将email.verified 属性更新为true。
我尝试了以下代码:
models.User.update({'data.email.verified':true},
{where:{id:1}}).then()...
models.User.update({data:{email:{verified:true}}},
{where:{id:1}}).then()...
更新后的列是:
{
'email':{'verified':true},
}
我也试过这个:
models.User.findById(1).then(user => {
user.set('data.email.verified', true);
user.save().then()...
});
这可行,但我不想执行两个查询(选择然后更新)只更新一个字段。
是否可以使用 sequelize 和单个更新查询来做到这一点?
【问题讨论】:
标签: sequelize.js jsonb