Найти дочерний объект в родительском объекте с помощью Sequelize - PullRequest
1 голос
/ 18 марта 2020

У меня есть три таблицы в базе данных MySQL: - categoryTypes, category and categoryTemplates. Родительская таблица - это CategoryTypes. В categoryTypes есть следующие поля, и id categoryTypes хранится как внешний ключ в таблице категорий. Фиктивные данные следующие: -

"id": 1,
"name": "testing1",
"img": "assets/images/img-1584341288506.png",
"status": "ACTIVE",

В таблице категорий есть следующие поля, и есть поле с именем categoryTypeRef, в котором первичный ключ categoryTypes хранится как внешний ключ. Фиктивные данные: -

"id": 1,
"name": "testing1236",
"img": "assets/images/img-1584341317490.png",
"status": "ACTIVE",
"categoryTypeRef": 1,

В таблице категорий шаблонов идентификатор категории хранится как внешний ключ в таблице шаблонов категорий, а фиктивные данные: -

"id": 2,
"status": "ACTIVE",
"brandName": "Havells",
"purchasingCost": 10000,
"specifications": "{\n  \"TextBox\": [\n    {\n      \"labelText\": \"Text Box 1\",\n      \"valueText\": \"1234577800\",\n      \"requireTextBox\": false\n    },\n    {\n      \"labelText\": \"Text Box 2\",\n      \"valueText\": \"15264848\",\n      \"requireTextBox\": false\n    }\n  ],\n  \"TextArea\": [\n    {\n      \"labelTextArea\": \"bdbhd\",\n      \"valueTextArea\": \"hdhdhd\",\n      \"requireTextArea\": false\n    }\n  ]\n}",
"serialNo": null,
"warrantyMonths": 18,
"categoryRef": 1,

Я хочу получить тип категории как другой объект при получении объекта шаблонов категорий. Мое ожидаемое решение: -

"categoryTemplate": {
            "id": 2,
            "status": "ACTIVE",
            "brandName": "Havells",
            "purchasingCost": 10000,
            "specifications": "{\n  \"TextBox\": [\n    {\n      \"labelText\": \"Text Box 1\",\n      \"valueText\": \"1234577800\",\n      \"requireTextBox\": false\n    },\n    {\n      \"labelText\": \"Text Box 2\",\n      \"valueText\": \"15264848\",\n      \"requireTextBox\": false\n    }\n  ],\n  \"TextArea\": [\n    {\n      \"labelTextArea\": \"bdbhd\",\n      \"valueTextArea\": \"hdhdhd\",\n      \"requireTextArea\": false\n    }\n  ]\n}",
            "serialNo": null,
            "warrantyMonths": 18,
            "categoryRef": 1,
            "category": {
                "id": 1,
                "name": "testing1236",
                "img": "assets/images/img-1584341317490.png",
                "status": "ACTIVE",
                "categoryTypeRef": 1,
            },
           "categoryType": {
                    "id": 1,
                    "name": "testing1",
                    "img": "assets/images/img-1584341288506.png",
                    "status": "ACTIVE",
                }
        }

Я применил следующий запрос продолжения: -

 const categoryTemplate = await CategoryTemplate.findAll({
            where: {
              id: body.categoryTemplateRef
            },
            include: [
              {
                model: Category,
                include: [CategoryType]
              }
            ]
          });

Мой фактический результат: : -

"categoryTemplate": {
            "id": 2,
            "status": "ACTIVE",
            "brandName": "Havells",
            "purchasingCost": 10000,
            "specifications": "{\n  \"TextBox\": [\n    {\n      \"labelText\": \"Text Box 1\",\n      \"valueText\": \"1234577800\",\n      \"requireTextBox\": false\n    },\n    {\n      \"labelText\": \"Text Box 2\",\n      \"valueText\": \"15264848\",\n      \"requireTextBox\": false\n    }\n  ],\n  \"TextArea\": [\n    {\n      \"labelTextArea\": \"bdbhd\",\n      \"valueTextArea\": \"hdhdhd\",\n      \"requireTextArea\": false\n    }\n  ]\n}",
            "serialNo": null,
            "warrantyMonths": 18,
            "categoryRef": 1,
            "category": {
                "id": 1,
                "name": "testing1236",
                "img": "assets/images/img-1584341317490.png",
                "status": "ACTIVE",
                "categoryTypeRef": 1,
                "categoryType": {
                    "id": 1,
                    "name": "testing1",
                    "img": "assets/images/img-1584341288506.png",
                    "status": "ACTIVE",
                }
            }
        }

Заранее спасибо, если кто-нибудь поможет с этим.

1 Ответ

0 голосов
/ 18 марта 2020

categoryTemplate.categoryType = categoryTemplate.category.categoryType

, что означает создание нового поля для вашего объекта categoryTemplate с именем categoryType и сохранение на нем объекта categoryTemplate.category.categoryType

...