Sequelize returns extra 字段和两者,camel case 和 snake case 外国字段
Sequelize returns extra field and both, camel case and snake case foreign fields
当我通过 Sequelize Model.findAll() 发出请求时,响应中出现 event_id这不在模型中,而且所有外键都出现在蛇形和驼形的情况下。
续集调用:
ChatMessage.findAll({ offset, limit, raw: true });
结果:
{
campaignId: 1
campaign_id: 1
createdAt: "2022-01-11T21:41:39.931Z"
event_id: null
id: 3
isCampaignMessage: true
media: "https://link.com"
message: "Text"
messageFrom: "+11111111111"
messageTo: "+11111111111"
sid: "..."
status: "..."
targetId: 1
target_id: 1
}
现在查询:
SELECT "id",
"target_id" AS "targetId",
"message_from" AS "messageFrom",
"message_to" AS "messageTo",
"message",
"media",
"sid",
"status",
"campaign_id" AS "campaignId",
"is_campaign_message" AS "isCampaignMessage",
"created_at" AS "createdAt",
"campaign_id",
"event_id",
"target_id"
FROM "chat_message" AS "ChatMessage"
LIMIT 25 OFFSET 0;
但应该没有最后 3 个 ID,因为它们会重复。
当您添加无效的关联时,可能会出现额外的外部字段。我的情况也是如此,event_id 字段的额外关系。
Event.hasMany(models.Campaign, { foreignKey: 'event_id' });
Event.hasMany(models.ChatMessage, { foreignKey: 'event_id' }); // <--- Unnecessary association
Event.hasMany(models.Target, { foreignKey: 'event_i
对于重复出现的情况,需要将所有关联的外键都带成驼峰式的形式。在此之前,他们是在蛇案中。
ChatMessage.belongsTo(models.Target, { foreignKey: '<target_id INTO targetId>' });
当我通过 Sequelize Model.findAll() 发出请求时,响应中出现 event_id这不在模型中,而且所有外键都出现在蛇形和驼形的情况下。
续集调用:
ChatMessage.findAll({ offset, limit, raw: true });
结果:
{
campaignId: 1
campaign_id: 1
createdAt: "2022-01-11T21:41:39.931Z"
event_id: null
id: 3
isCampaignMessage: true
media: "https://link.com"
message: "Text"
messageFrom: "+11111111111"
messageTo: "+11111111111"
sid: "..."
status: "..."
targetId: 1
target_id: 1
}
现在查询:
SELECT "id",
"target_id" AS "targetId",
"message_from" AS "messageFrom",
"message_to" AS "messageTo",
"message",
"media",
"sid",
"status",
"campaign_id" AS "campaignId",
"is_campaign_message" AS "isCampaignMessage",
"created_at" AS "createdAt",
"campaign_id",
"event_id",
"target_id"
FROM "chat_message" AS "ChatMessage"
LIMIT 25 OFFSET 0;
但应该没有最后 3 个 ID,因为它们会重复。
当您添加无效的关联时,可能会出现额外的外部字段。我的情况也是如此,event_id 字段的额外关系。
Event.hasMany(models.Campaign, { foreignKey: 'event_id' });
Event.hasMany(models.ChatMessage, { foreignKey: 'event_id' }); // <--- Unnecessary association
Event.hasMany(models.Target, { foreignKey: 'event_i
对于重复出现的情况,需要将所有关联的外键都带成驼峰式的形式。在此之前,他们是在蛇案中。
ChatMessage.belongsTo(models.Target, { foreignKey: '<target_id INTO targetId>' });