Sequelize.js 如何连锁访问关系续集

Sequelize.js 如何连锁访问关系续集,sequelize.js,Sequelize.js,在拉维关系中可以是链式的,并且有自己的方法。有4个模型媒体,海报,图片,下载 如果我想从图像访问下载模型 $media = Media::first(); return $media->poster->image->download 续集里怎么办 const media = Media.findOne(); media.getPoster() // it stop in here. 我已经在海报模型中定义了链接到图像模型的关系。在您的示例中媒体。getPoster()是一种

在拉维关系中可以是链式的,并且有自己的方法。有4个模型媒体,海报,图片,下载

如果我想从图像访问下载模型

$media = Media::first();
return $media->poster->image->download
续集里怎么办

const media = Media.findOne();
media.getPoster() // it stop in here.

我已经在海报模型中定义了链接到图像模型的关系。

在您的示例中
媒体。getPoster()
是一种神奇的方法,Sequelize自动添加该方法,使查询相关数据变得更容易-请注意,这是一个新的查询,而不仅仅是从现有结果中提取数据。因此,如果要查询数据层次结构,则需要使用
include
关键字传入要获取的关联

此示例将获得
海报
结果,但也将包括相关的
图像
下载
模型

const poster=wait media.getPoster({
包括:{
型号:图片,
包括:{
型号:下载,
必需:false,//左连接
},
必填项:false,
});
//poster.image.download;
如果您希望在初始查询中包含所有这些结果,而不是使用多个查询,则只需在查询媒体时包含关联的模型即可

const media=wait media.findByPk(mediaID{
包括:{
型号:海报,
包括:{
型号:图片,
包括:{
型号:下载,
必需:false,//左连接
},
必填项:false,
},
必填项:false,
},
});
//media.poster.image.download;

如何在include image中添加where?我只需要检索一个具有字段宽度的图像
gte 256
@davidstephen您只需要在图像include中添加一个
where
{model:image,其中:{someField:{[Op.gte]:256},include:{…}