Return flat object from sequelize with association

后端 未结 3 1983
醉梦人生
醉梦人生 2021-01-14 08:21

I am working on converting all my queries in sequelize. The problem I have come across is that when select queries include associations (ex. one to many), the object I get

3条回答
  •  悲哀的现实
    2021-01-14 09:11

    Part of your issue is probably that your result is an array of model instances, so you might be having issues flattening it if you didn't call toJSON on the elements in the array. I provided code that would flatten your example:

    result.forEach(obj => { 
        Object.keys(obj.toJSON()).forEach(k => {
            if (typeof obj[k] === 'object') {       
                Object.keys(obj[k]).forEach(j => obj[j] = obj[k][j]);
            }
        });
    });
    

    You can also add raw: true as an option to findAll, which will flatten your object, but it will look like this:

    [   
      {
        "field1": "someval",
        "field2": "someval1",
        "assoc_table.field_a": 1,
        "assoc_table.field_b": "someval"
      },
      ...
    ]
    

提交回复
热议问题