Эффективная массовая вставка CSV в NeDB с использованием JavaScript

“Групповая вставка данных CSV с помощью NeDB”

NeDB — это легкая встроенная база данных JavaScript, обеспечивающая простой и эффективный способ хранения данных и доступа к ним. В этой статье блога мы рассмотрим различные методы массовой вставки данных CSV в базу данных NeDB. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять реализацию.

Метод 1: использование csv-парсера и async/await

const fs = require('fs');
const csv = require('csv-parser');
const Datastore = require('nedb');
const db = new Datastore();
fs.createReadStream('data.csv')
  .pipe(csv())
  .on('data', async (row) => {
    await db.insert(row);
  })
  .on('end', () => {
    console.log('CSV data inserted successfully');
  });

Метод 2. Использование библиотеки csvtojson и Promises

const fs = require('fs');
const csv = require('csvtojson');
const Datastore = require('nedb');
const db = new Datastore();
const insertData = async (data) => {
  return new Promise((resolve, reject) => {
    db.insert(data, (err, newDocs) => {
      if (err) {
        reject(err);
      } else {
        resolve(newDocs);
      }
    });
  });
};
const processData = async () => {
  const jsonArray = await csv().fromFile('data.csv');
  await insertData(jsonArray);
  console.log('CSV data inserted successfully');
};
processData();

Метод 3. Использование библиотеки fast-csv и потоков

const fs = require('fs');
const csv = require('fast-csv');
const Datastore = require('nedb');
const db = new Datastore();
const stream = fs.createReadStream('data.csv');
const csvStream = csv()
  .on('data', (data) => {
    db.insert(data);
  })
  .on('end', () => {
    console.log('CSV data inserted successfully');
  });
stream.pipe(csvStream);

Это всего лишь несколько способов массовой вставки данных CSV в базу данных NeDB. Вы можете выбрать тот, который лучше всего соответствует вашим требованиям и стилю кодирования. Не забудьте установить необходимые зависимости (csv-parser, csvtojson, fast-csv) с помощью npm перед запуском примеров кода.