Hice una búsqueda de la misma pregunta, pero no encontré ninguna solución todavía. Con la biblioteca asíncrona, es muy simple usar la consulta varias veces y hacer el manejo de errores necesario.
Puede ser que esta variante de código ayude (para insertar 10.000 objetos json pequeños en una base de datos vacía tomó 6 segundos).
Cristóbal
function insertData(item,callback) {
client.query('INSERT INTO subscriptions (subscription_guid, employer_guid, employee_guid)
values ($1,$2,$3)', [
item.subscription_guid,
item.employer_guid,
item.employee_guid
],
function(err,result) {
// return any err to async.each iterator
callback(err);
})
}
async.each(datasetArr,insertData,function(err) {
// Release the client to the pg module
done();
if (err) {
set_response(500, err, res);
logger.error('error running query', err);
return console.error('error running query', err);
}
logger.info('subscription with created');
set_response(201);
})