#javascript #node.js #typescript #postgresql #sequelize.js
Вопрос:
У меня есть модель, которую я пытаюсь запросить, и я пытаюсь включить в нее некоторые очень вложенные модели (отношение которых варьируется от hasOne до hasMany), но кажется, что с определенного уровня объект возвращается и получается пустая модель
const parent = Parent.findByPk(id, {include: ["anotherChild", {model: Child1, as: "child1", include: [ {model: Child2, as: "children2", include: [ {model: Child3, as: "child3", include: [ {model: Child4, as: "children4", include: [ {model: Child5, as: "children5"} ]} ]} ]} ]} ]});
Когда я пытаюсь напечатать наиболее вложенный дочерний элемент, я получаю экземпляр модели, но без значений (есть совпадающие результаты, иначе он также просто установил бы их как нулевые).
console.log(parent.child1.children2[0].child3.children4[0].children5[0]); // prints: // Child5 { // dataValues: { '': null }, // _previousDataValues: { '': null }, // .... // }
когда я пытаюсь разделить запрос, он работает
const parent = Parent.findByPk(id, {include: ["anotherChild", {model: Child1, as: "child1"}]}); const fromChild1 = Child1.findByPk(parent.child1.id, include: [ {model: Child2, as: "children2", include: [ {model: Child3, as: "child3", include: [ {model: Child4, as: "children4", include: [ {model: Child5, as: "children5"} ]} ]} ]} ] );
приведите к следующему значению:
console.log(fromChild1.children2[0].child3.children4[0].children5[0]); // prints: // Child5 { // dataValues: { 'realKey': 'realValue', 'realData': 'someData'... }, // _previousDataValues: { 'realKey': 'realValue, 'realData': 'someData'... }, // .... // }
Почему это так, и как я мог это пережить? (использование {все: истинно, вложено: истинно} невозможно из-за отношений принадлежности / принадлежности между ними)