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
и теперь работает нормально.