[英]sequelize update column by id from object array
我有一张桌子:
id, url, storage
3, www.a.com, null
7, www.b.com, null
现在我获取html并将其保存在一个位置(存储)。
我的代码生成一个带有id及其相应存储位置的对象:
{
3: 'C:',
7: 'D:'
}
如何批量更新此信息中的条目,以便它成为
id, url, storage
3, www.a.com, C:
7, www.b.com, D:
我使用sequelize与数据库进行通信
Model
是Model
的一个实例,它连接到您的表。 它将有3个属性: id, url, storage
。
例如,这就是我假设你已经设置它的方式:
var Model = db.define('Model',
{
id: { type: Sequelize.INTEGER },
url: { type: Sequelize.TEXT },
storage: { type: Sequelize.STRING(1) }
},
{
tableName: 'my_table_name',
timestamps: false
});
现在,您可以使用findAll()
方法检索表中的所有条目,根据您的对象过滤它们,并在条目上设置storage
属性并保存到DB:
var obj = {3: 'C:',7: 'D:'};
Model.findAll()
.filter(function(entry) {
// filter returns only those entries that have IDs present in the obj
return obj.hasOwnProperty(entry.id);
})
.map(function (filteredEntry) {
// Ex.:
// filteredEntry = {"id": 3, "url": "www.a.com", "storage": null}
// obj[filteredEntry.id] == obj[3] == 'C'
filteredEntry.storage = obj[filteredEntry.id];
return filteredEntry.save();
})
.then(function (entries) {
//Do something else
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.