gpt4 book ai didi

node.js - 如何在 Sequelize Postgres 中更新数组

转载 作者:搜寻专家 更新时间:2023-10-31 23:51:54 24 4
gpt4 key购买 nike

我在 Sequelize 中有一个用于 Postgres 数据库的用户模型:

var User = sequelize.define('User', {
fb_id: DataTypes.STRING,
access_token: DataTypes.TEXT,
first_name: DataTypes.STRING,
last_name: DataTypes.STRING,
email: DataTypes.TEXT,
profilePictureURL: DataTypes.TEXT,
library: DataTypes.ARRAY(DataTypes.STRING)
}, {
underscored: true,
classMethods: {
associate: function(models) {

}
}
});

我正在尝试通过将 ISBN 添加到数组来更新图书馆字段。这是我的 POST 请求的代码:

req.user.library.push(req.body._isbn); // adding the posted ISBN to the user object in my express-session

User.findOrCreate({where: {fb_id: req.user.fb_id},
defaults: {
access_token : req.user.access_token,
first_name : req.user.first_name,
last_name : req.user.last_name,
email : req.user.email,
profilePictureURL : req.user.profilePictureURL,
library: req.user.library // new library object
}})
.spread(function (updatedUser, created){
res.status(200).json(updatedUser);
}).error(function(err){
res.status(500).json(err);
});

没有报错,但是检查updatedUser对象后library字段没有更新。如何在 Sequelize 中正确更新数组字段?

最佳答案

对于下一个访问者,我可能找到了解决此问题的更好方法:

User.update(
{library: Sequelize.fn('array_append', Sequelize.col('library'), req.body._isbn)},
{where: {fb_id: req.user.fb_id}}
);

关于node.js - 如何在 Sequelize Postgres 中更新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41924281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com