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