findOrCreate创建重复项

时间:2014-10-09 12:21:30

标签: asynchronous each sails.js waterline sails-postgresql

我正在使用oracle adapterasync.eachfindOrCreate将一些数据从oracle传输到我的postgres db:

//simplified version
oracle.select(sql, [], function(err, results) {
    async.each(results, function(add_me, async_cb){
        model_to_add.findOrCreate(
            {not_id_field: add_me.value},
            {required_fields: add_me.values}
        ).exec(function add_me_cb(err, record){
            if (record && !err){
                async_cb();
            }
        });
    });
})

我的sql查询返回not_id_field的多个值,而不是唯一值。但我希望它在我的postgres db中是独一无二的。我认为finOrCreate是最好用的。但它不知何故找不到记录。

我错了吗?或许还有我缺少的东西? sails.js文档并非真有帮助:(

1 个答案:

答案 0 :(得分:0)

原来这对我来说是一个问题 - 我并不是真的理解async.each是如何工作的,并且它几乎同时对阵列中的每个项目执行。我切换到async.eachSeries,现在工作正常。