使用nodejs在mongodb中插入最多数量的记录
inserting max num of records in mongodb using nodejs in less time
我正在做一项小任务,需要读取节点中的一个大文件(即1.3GB),并将每一行划分为一条记录,以便在更短的时间内将每条记录插入mongodb集合。请用代码向我推荐,并提前表示感谢。
您可能希望在不将数据缓冲到内存中的情况下读取这么多数据。
假设您正在处理JSON数据,我认为这可能是一种可行的方法:
var LineByLineReader = require('line-by-line');
var fileHandler = new LineByLineReader('path/to/file', { encoding:'utf8', skipEmptyLines: true });
var entries = [];
var bulkSize = 100000; // tweak as needed
fileHandler.on('error', function (err) {
// process errors here
});
fileHandler.on('line', function (line) {
entries.push(JSON.parse(line));
if (entries.length === bulkSize) {
// pause handler and write data
fileHandler.pause();
YourCollection.insertMany(entries)
.then(() => {
entries = [];
fileHandler.resume();
})
}
});
fileHandler.on('end', function () {
YourCollection.insertMany(entries)
.then(() => {
// everything's done, do your stuff here
});
});
line-by-line
模块似乎有点bug,将来可能会被弃用,因此您可能希望使用逐行而不是
相关文章:
- 包含插入的Meteor方法没有返回记录ID作为结果
- 使用Javascript将多条记录插入SQLite数据库时出错
- Meteor使用表格值插入记录
- 如何在MySQL中插入多个记录/行
- CRM 2011-在插入新记录或修改现有记录时捕获子网格的事件
- mysql查询一次在单个查询中的多个表中插入记录
- 使用php在mysql中插入多个记录
- JQUERY AJAX 发布错误 500 知道吗?我正在尝试将记录插入其中
- PHP 多条记录插入
- 循环根据长度精确迭代,但每次迭代中插入相同的记录
- API 返回 404,但记录插入到数据库中
- 使用单个查询将多个记录插入到 webSQL 表中,来自对象数组的数据
- 节点发布 将新记录插入我的数据库不会返回新条目的数据
- 如何在记录插入Mysql数据库后重定向到新的Html页面
- 如何在Node.js中使用Lua Script将多条记录插入Redis Hash
- 如何获得服务器端响应,如“;记录插入“;使用ajax调用
- 如何使用Node将记录插入mongo,其中记录具有$oid
- 从多行表PHP Javascript将多条记录插入MySQL
- 只在新记录插入数据库时设置ajax调用
- 如何将新记录插入到现有集合:Sails.js