读取大文件并逐行插入 Node.JS 中的数据库
Reading large file and inserting line by line into database in Node.JS
我有一个非常大的文件,其中包含大量JSON字符串(超过100K),每行都有一个字符串。
我想阅读每一行,将其插入数据库,在插入项目后,我想使用初始插入中的基本信息更新另一个数据库中的另一个文档。 而且由于我是nodejs新手,所以我很难理解我做错了什么。 这是我到目前为止所拥有的。
var lineReader - require("line-reader");
lineReader.eachLine(filePath, function(line, last){
if(count == 1){
asyncAdd(JSON.parse(line));
}
})}
var counter = 0;
function asyncAdd(jsonString){
async.waterfall([
//this function calls the inserter
function(callback){
counter++;
addJson(jsonString, function(doc){
callback(null, doc);
console.log("Added " + counter);
})
},
//This function calls the indexing function
function(doc, callback){
console.log("indexing: " + counter);
updateDBIndex(doc, function(err, savedDocument){
callback(err, savedDocument);
});
}
],
function(err, results){
if(err){
return console.error("Error " + err);
}
console.log("indexed " + counter);
});
}
基本上,如果我的文件看起来像:
{"_id": "1", "item":"glove", "color": "red"}'n
{"_id": "4", "item":"hat", "color" : "red"}'n
{"_id": "6", "item":"hat","color" : "blue"}'n
我希望输出看起来像这样,添加 1索引 1索引 1添加 2索引 2索引 2添加 3索引 3索引 3
任何帮助将不胜感激! 谢谢!
你可以尝试遵循代码片段
var lineReader = require("line-reader");
var lineNumber = 0;
lineReader.eachLine(filePath, function (line, last) {
asyncAdd(JSON.parse(line), lineNumber); // current line number
lineNumber++; // increment for next one
});
function asyncAdd(jsonString, lineNum/*additional parameter*/) {
async.waterfall([
//this function calls the inserter
function (callback) {
addJson(jsonString, function (doc) {
callback(null, doc);
console.log("Added " + lineNum);
})
},
//This function calls the indexing function
function (doc, callback) {
console.log("indexing: " + lineNum);
updateDBIndex(doc, function (err, savedDocument) {
callback(err, savedDocument);
});
}
],
function (err, results) {
if (err) {
return console.error("Error " + err);
}
console.log("indexed " + lineNum);
});
}
希望它有效,原版有点不完整。
相关文章:
- 如何使用 Angular JS 将数据保存在数据库中
- 当数据库中的某些内容发生变化时调用HTTP方法Meteor.js
- Bookshelf.js设置的属性不在数据库中
- angular.js从数据库中获取链接
- Electron:Express.js服务器在Mongo数据库'It’准备好了
- 如何使用mysql数据库在node.js中登录API
- 如何访问日期并将其插入数据库?节点.JS&MongoDB
- 使用node-js上传文件,并将表单信息存储在数据库(mysql)中
- 我应该如何使用node.js和导出来调用mysql数据库
- 尝试将js中的字符串写入mySql数据库时获取%%
- Node.js设计:多个异步函数使用作为闭包传递的函数写入数据库
- 使用 node.js 设置 Microsoft Access 数据库连接
- Node.js:数据库查询后返回值未定义
- 从多个模块初始化Node.js数据库
- Node.js数据库访问阻塞了主线程
- Node . js数据库连接在单独的模块中
- 非大小写敏感的查询与TaffyDB(或其他JS数据库)
- 使用TypeScript创建新的sql.js数据库
- 请参阅typeahead.js数据库
- 如何通过骨干.js数据库开发CRUD技术