javascript - 从原始查询中解析模型和关联 hasMany
问题描述
提前感谢您的帮助。
我有两个模型 Menu 和 Window 及其关联
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 时,信息被包含在菜单中,我想要一个窗口对象。
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工作,否则给我这个错误Unhandled reject TypeError: Cannot read property未定义的“模型”
顺便说一句,使用 findAll 续集工作正常,但我正在使用更多表进行复杂查询,但只显示菜单和窗口,所以我推断关联很好,问题在于我映射输出的方式
解决方案
经过一千次尝试,它只是将表的别名放入模型中
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);
}); ```
推荐阅读
- php - 如何使用 PHP 增加唯一收据编号并在 mysql 数据库中更新?
- css - Gulp-sass 在代码中出现拼写错误但没有错误时编译 CSS
- ruby-on-rails - Rails 5找不到连接表的关联,测试寻找反向表名
- html - 如何首先放置离子标签?
- node.js - 在等待调用中中断异步函数
- oracle - 比较两条记录并突出显示差异
- flutter - 更改父母时如何使用`GlobalKey`维护小部件的状态?
- python - 创建新列后,更新给定日期范围的 pandas 列不再有效
- node.js - 我正在寻找一种过滤 evenbrite 事件的方法。但它给我带来了所有的事件。我该如何过滤它们?
- python-3.x - 为什么我的 DAG 中的任务没有运行?