我正在尝试将数据插入到mongoDB。
当我声明数组本地化时,它起作用。
var data = [{Name : "Steven", Age: 44},{Name : "John", Age: 54}]
但是当我将此文件存储到data.jason并读取此文件时。我无法插入。
我收到此错误:[MongoError:docs参数必须为文档数组
app.get("/insert", function(request, response) {
fs.readFile(reqPath , 'utf8', function (err, data) {
//Handle Error
if(!err) {
//Handle Success
console.log(data);
db.collection("TheData").insertMany(data, function(err, r) { console.error(err);});
//console.log("after" +defaultUsers);
}else {
//Handle Error
console.error(err);
}
})
});
eventhoug console.log(data);
的输出与上面我对它进行除法的数组相同。
此回调fs.readFile(reqPath , 'utf8', function (err, data)
中的数据类型为String。您应该将输出转换为json。
当然,您还需要更改将数组写入文件的方式。并使用双引号作为关键字
data.json:
[{"Name" : "Steven", "Age": 44},{"Name" : "John","Age": 54}]
更新您的代码
app.get("/insert", function (request, response) {
fs.readFile(reqPath, 'utf8', function (err, data) {
//Handle Error
if (!err) {
//Handle Success
console.log(data);
data = JSON.parse(data);
db.collection("TheData").insertMany(data, function (err, r) { console.error(err); });
//console.log("after" +defaultUsers);
} else {
//Handle Error
console.error(err);
}
})
});