簡體   English   中英

如何為Sequelize模型添加大量數據?

[英]How do I add a lot of data to Sequelize model?

我有很多.txt文件,其中每行都有一些我想添加到模型中的數據,以便可以進行查詢。 問題在於,可能由於庫的異步性,沒有執行任何“插入”查詢。

這是我所擁有的:

// Connect to DB
// Set up Model
// Model.sync()

// first for loop (for each .txt)
// second for loop (nested) (for each line in the .txt)
// in second for loop: Model.create(data);

如何確保每個數據對象都已成功添加到數據庫中?

這是代碼:

var Location = sequelize.define('Location', {
  name: Sequelize.STRING,
  country: Sequelize.STRING,
  lat: Sequelize.STRING,
  long: Sequelize.STRING
});
Location.sync().success(function(){
  for (var i = 0; i < txts.length; i++){
    var txt = txts[i],
      country = txt.substr(0, txt.indexOf('.')),
      data = fs.readFileSync(dir +"/" + txt, 'utf-8'),
      locations = data.split('\n');

    for (var j =1; j < locations.length; j++){
      var loc = locations[j],
        chunks = _.without(loc.split('\t'), ''),
        lat = chunks[3],
        long = chunks[4],
        name = chunks[16]

      Location.build({
        country: country,
        lat: lat,
        long: long,
        name: name
      })
        .save()
        .success(function(){
          console.log('success');
        })
        .error(function(err){
          if (err) throw err;
        });
    }

 }

我嘗試使用lodash的forEach方法迭代循環,但兩種方法似乎都跳過了Location.build()

在看不到實際代碼的情況下很難說,但是請嘗試對循環使用fs.readFileSync或最好使用async.each或async.auto,以便外循環實際上在執行內循環之前完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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