我有一个 JSON 文件,其中包含不同长度的嵌套数组。也就是说,每个对象都有一个包含不同数量对象的 ARR。
{ "count": 200,
"objects": [
{
"id": "FIRST",
"b": "two",
"c": "three",
"ARR": [{
"aa": "onion ",
"bb": 2,
"cc": "peanuts"},
},
{
"aa": "Jam ",
"bb": 4,
"cc": "Bread"},
}],
"d":"four"
]
}, . . . on and on
我已将 JSON 数据导入到我的 JavaScript 文件中:
const data = JSON.parse(require('fs').readFileSync('./jsonfiles/objects.JSON', 'utf8'))
将数据修剪为感兴趣的对象
const objs=data.objects;
我正在使用 Sequelize 将其写入 mysql 数据库。我有两个模型:模型 1:hasMany Arr 集:模型 2:belongsTo Model1。
从 Model1 写入 table1 效果很好,如下所示:
for (var key in Objs) {
var item = Objs[key]
db.Model1.create({
modelID: item.id,
modelB: item.b,
modelC:item.c
})
}
现在,我正在尝试将 ARR 写入关联的模型,但对如何执行此操作感到困惑。
- 我不知道每个 ARR 中有多少个对象
- 将 ARR 作为 JSON 对象存储在 table1 中以后将无法正常使用。
最佳答案
这是我为我们公司 API 创建的函数。我花了一周的时间来整理,但希望这会有所帮助。
exports.functionName = async (req, res) => {
const params = req.params.something;
if (!params) {
res.status(httpStatusCodes.BAD_REQUEST).send({message:'Please provide params'});
return;
}
const function = inputs.map(prop => ({
propOne: uniqueID,
propTwo: prop.value,
}));
const value = await productInput.bulkCreate(function);
if (!value || value.length < 1) {
res.status(httpStatusCodes.INTERNAL_SERVER_ERROR).send({ message:'No inputs were updated for this product.' });
return;
}
res.send(value);
return;
};
关于mysql - Sequelize : Write multidimensional array to database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51497885/