簡體   English   中英

從對象數組中按id繼續更新列

[英]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與數據庫進行通信

ModelModel的一個實例,它連接到您的表。 它將有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM