Loopback模型中的findOrCreate

时间:2016-03-16 07:46:49

标签: javascript node.js model loopbackjs strongloop

我在环回上发现了一个有趣的问题。当我使用findOrCreate添加记录时,我感到很困惑。让我们看一下这个例子:

  for (var x = 0; x < 10; x++) {
    console.log(x);
    var Log = app.models.Log;
    Log.findOrCreate({
      where: {
        modelName: '123'
      }
    }, {
      modelName: '123'
    }, function(err, log) {
      if (err) return;
      if (log) {
        console.log("+ " + log.id);
      }
    });
  }

我认为应该使用modelName&#39; 123&#39;创建1条记录。只是,但我终于得到了10。

有什么不对吗?

1 个答案:

答案 0 :(得分:0)

这是预料之中的。您正在同步运行代码。如果以异步方式运行它,您将看到只创建了一个文档。试试这个:

var arr = new Array(10);
async.eachSeries(arr, function (pos, callback) {
    console.log(pos);
    Log.findOrCreate({
      where: {
        txt: '123'
      }
    }, {
      txt: '123'
    }, function (err, log) {
      if (err) return;
      console.log("+ " + log.id);
      callback();
    });
  }, function (err) {
    if (err) {
      throw err;
    }
  }
);