【问题标题】:Sequelize 6.5 didn't return complete child relationships & limit the key nameSequelize 6.5 没有返回完整的子关系并限制键名
【发布时间】:2022-07-12 01:52:41
【问题描述】:

这是我的问题。 我正在尝试通过 Sequelize 获取嵌套关系。

let results = await FarmVisitQuestionnaire.findOne({
        where: { Customer_ID, id:2 },
        include: [{
          model: FarmVisitSection,
          include: [{
            model: FarmVisitQuestion,
            include: [{
              model: FarmVisitQuestionOption,
            }]
          }]
        }],
      });

除了最深的关系FarmVisitQuestionOption,一切都很好。它没有在FarmVisitQuestionOption 部分返回完整的数据,有两个FarmVisitQuestionOption 数据但只返回一个FarmVisitQuestionOption ("i":1)。 FarmVisitQuestionOption 中的键名仅限于第一个字符,如下所示:

"questionnaires": {
        "id": 2,
        "Customer_ID": "3380",
        "Title": "Form title",
        "createdAt": "2022-07-05T19:42:50.292Z",
        "updatedAt": "2022-07-05T19:42:50.292Z",
        "FarmVisitSections": [
            {
                "id": 2,
                "Title": "Section title",
                "Description": "Section description",
                "Order": 0,
                "createdAt": "2022-07-05T19:42:50.295Z",
                "updatedAt": "2022-07-05T19:42:50.295Z",
                "FarmVisitQuestionnaireId": 2,
                "FarmVisitQuestions": [
                    {
                        "id": 1,
                        "Title": "Question title?",
                        "Description": "Question description / extra info",
                        "Order": 0,
                        "Required": "true",
                        "Type": "checkbox1",
                        "createdAt": "2022-07-05T19:42:50.299Z",
                        "updatedAt": "2022-07-05T19:42:50.299Z",
                        "FarmVisitSectionId": 2,
                        "FarmVisitQuestionOptions": [
                            {
                                "i": 1,
                                "L": "First Option",
                                "V": "1",
                                "c": "2022-07-05T19:42:50.303Z",
                                "u": "2022-07-05T19:42:50.303Z",
                                "F": 1
                            }
                        ]
                    }
                ]
            }
        ]
    }

我的数据库设置正确: FarmVisitQuestionOption table

但是,正确的 FarmVisitQuestionOption 部分应该是:

"FarmVisitQuestionOptions": 
                      [
                            {
                                "id": 1,
                                "Label": "First Option",
                                "Value": "1",
                                "createdAt": "2022-07-05T19:42:50.303Z",
                                "updatedAt": "2022-07-05T19:42:50.303Z",
                                "FarmVisitQuestionId": 1
                            },
                            {
                                "id": 2,
                                "Label": "Second Option",
                                "Value": "2",
                                "createdAt": "2022-07-05T19:42:50.303Z",
                                "updatedAt": "2022-07-05T19:42:50.303Z",
                                "FarmVisitQuestionId": 1
                            }
                        ]

谁能帮我解决这个问题?任何见解都会有所帮助。谢谢!

【问题讨论】:

    标签: javascript node.js sequelize.js


    【解决方案1】:

    如果您使用 PostgreSQL,由于 Postgres 别名字符限制为 64,您需要在 Sequelize 实例中打开选项 minifyAliases
    the official Sequelize documentation

    【讨论】:

      猜你喜欢
      • 2021-05-14
      • 1970-01-01
      • 2021-11-04
      • 2011-09-16
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多