javascript - 从原始查询中解析模型和关联 hasMany

标签 javascript mysql node.js express sequelize.js

提前感谢您的帮助。

我有两个模型菜单和窗口及其关联

db.menus.hasMany(db.windows);
db.windows.belongsTo(db.windows);

我正在尝试使用与此类似的输出进行平面查询:

'menu':
{'description':'Menu 1',
     "windows": [
                  {"description": "windows 1"},
                  {"description": "windows 2"},
                  {"description": "windows 3"},      
                ]
}

当我将关联 hasOne 而不是 hasMany 放置时,至少窗口位于菜单内部,但每个窗口各占一行,但使用 hasMany 时,信息将作为菜单的一部分包含在内我想要一个 window 的对象。

const options = {
        model: db.menus,
        // mapToModel: true,
        // hasJoin: true,
        include: [{
            model: db.ventanas
        }]
    };
    db.menus._validateIncludedElements(options);
    db.sequelize.query(Query, options)
        .then(MenuWindows => {
            console.log(MenuWindows);
        });

我已经证明了很多说服,但没有人能正常工作,我想知道是否有什么事情我还没有做,正如我在将关联 hasOne 选项 hasJoin< 时所说的那样/strong> 否则会出现此错误 未处理的拒绝 TypeError: 无法读取未定义的属性“模型”

顺便说一句,使用 findAll Sequelize 工作正常,但我正在使用更多表进行复杂查询,但只显示菜单和窗口,所以我推断关联很好,问题在于方式我正在映射输出

最佳答案

经过一千次尝试后,只需将表的别名放入模型即可工作

        model: db.menus,
        as: 'menu',
        hasJoin: true,
        include: [{
            as: 'windows',
            model: db.windows
        }]
    };
    db.menus._validateIncludedElements(options);
    db.sequelize.query(query, options)
        .then(menuWindows => {
            console.log(menuWindows);
        }); ```

关于javascript - 从原始查询中解析模型和关联 hasMany,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60516646/

相关文章:

javascript - 第一个分号是什么意思? ";( function( ) { } ) ( ); "

MySql 唯一索引与索引速度

mysql - 无法根据 jhipster 中的日期字段=当前日期获取记录

node.js - 带有 Socket.io 和 Node 的动态房间

javascript - append.html jquery 与现有 html 的工作方式不同吗?

javascript - 获取div组的最大高度

javascript - 更改局部变量的值执行原始全局变量值的更改

perl - 有没有人成功地将 jqPlot 图表渲染为服务器端图像(例如使用 node.js)?

javascript - 使用 AJAX 发送多张图片

mysql - 将数据从一个数据库复制到同一个表中的另一个数据库