findOrCreate создает дубликаты

Я использую адаптер оракула, async.each а также findOrCreate перенести некоторые данные из оракула в мою базу данных postgres:

//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 ответ

Решение

Оказывается, это была проблема со мной - я действительно не понимал, как async.each работает и что он выполняется для каждого элемента в массиве почти одновременно. Я перешел на async.eachSeries и теперь работает нормально.

Другие вопросы по тегам