CSV,立即下载或操作node.js中的mongoDB

时间:2018-05-31 21:03:16

标签: node.js mongodb csv

我正在开发一个项目,我需要操作远程URL上托管的CSV文件,然后将格式化的内容发送到远程mongodb服务器。到目前为止,我尝试了许多方法但没有取得多大成功,所以我想知道你会建议什么?是否更容易在本地下载远程文件,然后重新上载或只是将内容加载到内存中并立即插入?

由于

1 个答案:

答案 0 :(得分:0)

我假设您要将CSV中的每个条目保存到mongo

使用scramjet的简单方法:

const {StringStream} = require('scramjet');
const request = require('request');
const mongo = require('mongo-db');

const db = new mongodb(url, cfg.collection, true);

StringStream.from(request.get('https://example.com/csvs/first.csv')) 
                                    // get your CSV as a stream and pass it to scramjet
    .CSVParse()                     // parse the stream as CSV
    .setOptions({maxParallel: 32})  // set maximum parallel operations
    .map(x => {                     // map every object
        const y = await manipulate(x);
        return JSON.parse(y);
    })
    .consume((y) => db.insert(y));  // insert into database

Disclamer:我是scramjet的作者。