【发布时间】:2019-05-10 16:57:39
【问题描述】:
我有三个关联模型,Product、CatalogMembership、Catalog 与这些关联
Product.hasMany(CatalogMembership, { foreignKey: 'product_id' });
CatalogMembership.hasOne(Catalog, { targetKey: 'catalog_id', foreignKey: 'id' });
当我执行这个嵌套查询时
let products = await Product.findAll({
where: {...},
include: {
model: CatalogMembership,
where: { catalog_id: { [Op.in]: catalogIds } },
include: {
model: Catalog,
attributes: ['name', 'id'],
},
},
});
包含 CatalogMemberships,但目录为空:
console.log(products[0]) // -->
/*
{
id: 1,
catalog_memberships: [
{ id: 23,
catalog_id: 15,
catalog: null,
...
},
{
id: 24,
catalog_id: 16,
catalog: null,
...
}
],
...
}
*/
而且我确信有目录
CatalogMembership.catalog_id === Catalog.id
我预计目录属性不会为 null,而是类似
{
id: 15,
name: 'MyCatalog'
}
【问题讨论】:
标签: sequelize.js