我正在尝试将数据插入MongoDB。
当我在本地声明数组时,它可以工作。
var data = [{Name : "Steven", Age: 44},{Name : "John", Age: 54}]
但是当我将此文件存储到data.json
并读取此文件时。我无法插入。
我收到此错误:
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);
}
})
});
即使,数据的输出与我上面声明的一样。
答案 0 :(得分:3)
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);
}
})
});