我对mongodb和nodejs很新。这是我发现难以执行的任务,我想通过nodejs解析.CSV文件并将数据推送到Mongodb。我使用 fast-csv 库通过nodejs读取了csv数据,但我很难将其推入mongodb。
我尝试了以下代码。
var fs= require('fs');
var csv = require('fast-csv');
var mongodb = require('mongodb');
var url = 'mongodb://localhost:27017/insertDB';
var MongoClient = mongodb.MongoClient;
var data;
var readData=fs.createReadStream('x.csv').pipe(csv()).on('data',function(data){
console.log(data);
})
.on('end',function(data){
console.log('Read finished');
})
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
} else {
console.log('Connection established to', url);
var collection = db.collection('airports');
collection.insert(data);
}
});
我的控制台正在打印数据。我在控制台中的错误显示为无法读取未定义的属性_id 我尝试更改上面的代码将数据库连接放在else部分中,我收到此错误无法分配给只读属性&# 39; _id' csv文件中的字段名称你能帮助我吗?
答案 0 :(得分:0)
data
是来自回调data
的{{1}}。插入后面的function(data)
是data
,它是空的
答案 1 :(得分:0)
试试这个
var fs= require('fs');
var csv = require('fast-csv');
var mongodb = require('mongodb');
var url = 'mongodb://localhost:27017/insertDB';
var MongoClient = mongodb.MongoClient;
var data;
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
} else {
console.log('Connection established to', url);
var collection = db.collection('airports');
readData=fs.createReadStream('x.csv').pipe(csv())
.on('data',function(data){
collection.insert({'data': data});
})
.on('end',function(data){
console.log('Read finished');
})
}
}); //End of Mongo connect