我正在尝试将来自minio
文件的JSON对象添加到MongoDB中
但是数据就像undefined[{"field":"value"}]
这是我的代码:
var miniData
minioClient.getObject(fileData.type,fileData.userId+fileData.fileName,function(err,exData) {
exData.on('data', async function (chunck) {
miniData += chunck;
});
exData.on('end',async function () {
console.log(miniData)
excelDb.create({ excelArray:miniData})
});
});
并且在MongoDB文档中,它存储为:
{
"_id" : ObjectId("5e0b02b9775cee50051b2547"),
"excelArray" : "undefined[{\"FIELD\":\"VALUE\"}
}
我想在文档中使用JSON数组。
给miniData
一个初始值。如果您不这样做,则它隐式为undefined
,并且undefined
加字符串会使undefined
转换为单词。请参阅下面的示例。
无需初始化变量:
var miniData;
miniData += 'a string';
console.log(miniData);
具有初始值:
var miniData = '';
miniData += 'a string';
console.log(miniData);
因此,在您的代码中,它应该像这样:
var miniData = ''; // initialize the variable with an empty string
minioClient.getObject(fileData.type,fileData.userId+fileData.fileName,function(err,exData) {
exData.on('data', async function (chunck) {
miniData += chunck;
});
exData.on('end',async function () {
console.log(miniData)
excelDb.create({ excelArray:miniData})
});
});
如果您想在MongoDB文档中有一个实际的数组,则在插入之前需要JSON.parse
miniData
,所以final解决方案应如下所示:
var miniData = ''; // initialize the variable with an empty string
minioClient.getObject(fileData.type,fileData.userId+fileData.fileName,function(err,exData) {
exData.on('data', async function (chunck) {
miniData += chunck;
});
exData.on('end',async function () {
console.log(miniData)
excelDb.create({ excelArray: JSON.parse(miniData)})
});
});