Javascript 根据对象数组中的id对更新列进行续集

Javascript 根据对象数组中的id对更新列进行续集,javascript,sequelize.js,Javascript,Sequelize.js,我有一张桌子: 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与DB进行通信,DB是您的模型的一个实例,它

我有一张桌子:

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与DB进行通信,DB是您的模型的一个实例,它连接到您的表。它将有3个属性:
id、url、存储

例如,我假设您是这样设置的:

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
属性并保存到数据库:

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
  });

Model
是连接到表的模型实例。它将有3个属性:
id、url、存储

例如,我假设您是这样设置的:

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
属性并保存到数据库:

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
  });