寻找一种有效而快速的方法,将大型(1000万行)的CSV数据流式传输到猫咪数据库中。
出现的问题是处理流媒体而不是导入可以用fs.CreateReadStream解决的问题(尽管仍在学习如何使用它),以及如何使用Mongoose来处理将大量数据插入MongoDB,因为过载Mongoose/带有插入请求的mongo可能会导致一些错误。
您只需要'流到mongo-db'和'csvtojson'npm库。这是我用来从Big CSV文件中转载数百万个记录的示例代码。它只是有效!
const fs = require('fs');
const csv = require('csvtojson');
const streamToMongoDB = require('stream-to-mongo-db').streamToMongoDB;
const csvFile = './bigFiles.csv';
const dbURL = 'mongodb://localhost/tweets';
const collection = 'tweets';
fs.createReadStream(csvFile)
.pipe(csv())
.pipe(streamToMongoDB({
dbURL : dbURL, collection : collection
}))
猫鼬中有一个insertmany()方法。但这只能让您仅一次插入10 000个文档。.我的解决方案是使用该方法对循环循环循环并插入untll untll。