首页 > 解决方案 > Sequelize:在键/值对象中转换嵌套模型

问题描述

我有一个Projects与 hasMany 关系的模型ProjectsTranslations。我用这个查询检索数据:

models.Projects.findById(req.params.id, {
    include: [
        {
            model: models.ProjectsTranslations,
        },
    ],
})

这返回了我这个数据:

{
    "Project": {
        "title": "First project",
        "id": 1,
        "ProjectsTranslations": [
            {
                "id": 1,
                "title": "First project",
                "ProjectId":1,
                "language": "en"
            },
            {
                "id": 2,
                "title": "Primer proyecto",
                "ProjectId":1,
                "language": "es"
            }
        ]
    }
}

我需要其他格式的翻译:

{
    "Project": {
        "title": "First project",
        "id": 1,
        "ProjectsTranslations": {
           "en": {
                "id": 1,
                "title": "First project",
                "ProjectId":1,
                "language": "en",
            },
            "es": {
                "id": 2,
                "title": "Primer proyecto",
                "ProjectId":1,
                "language": "es"
            }
        }
    }
}

有没有办法在模型定义中做到这一点?没有用于检索数据的钩子——用afterFind钩子尝试但没有结果——。也许是整个模型的吸气剂(如果存在的话)或实例方法……但我不确定如何实现。欢迎任何帮助!

标签: javascriptsequelize.js

解决方案


推荐阅读