【问题标题】:Sequelize: Write multidimensional array to databaseSequelize:将多维数组写入数据库
【发布时间】:2019-01-01 00:47:01
【问题描述】:

我有一个 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 中有多少对象
  • 在 table1 中将 ARR 存储为 JSON obj 将无法正常使用。

【问题讨论】:

  • ARR中缺少数组大括号,请先验证json
  • 嗨@VinuBibin,在我的JSON文件中这些对象周围确实有方括号。

标签: mysql json node.js sequelize.js


【解决方案1】:

这是我为我们公司的 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;
};

【讨论】:

    猜你喜欢
    • 2021-07-25
    • 2011-12-06
    • 2017-05-18
    • 2015-06-08
    • 2015-08-07
    • 1970-01-01
    • 2015-12-21
    • 2011-11-09
    • 1970-01-01
    相关资源
    最近更新 更多