续订一对一的关系

我有两个模型,video和帧。

Frame.belongsTo(models.Video); Video.hasMany(models.Frame, { as: "Frames" }); 

我现在需要一种方法来指定一个video的第一帧和最后一帧,但不能得到它的工作。

我试过这个:

 Video.hasOne(Frame, { as: "FirstFrame" }); Video.hasOne(Frame, { as: "LastFrame" }); 

但是这会在“帧”表中创buildFirstFrameId和LastFrameId,而不是“video”表。 我需要有video.get / setFirstFrame()和video.get / setLastFrame()函数可用。 我怎样才能做到这一点?

  • Nodejs会如何截断如何截断外键引用的表
  • Nodjs sequalize如何获得最后插入ID
  • 续集关联有一个,属于
  • 如何连接节点Sequelize到亚马逊RDS MySQL与多可用区
  • 从asp.mvc应用程序迁移到以devise为重点的node.js应用程序
  • 将多个表保存在多个表中
  • Sequelize - 两个ID的双连接表
  • Sequelize中的模型和迁移定义之间的主要区别是什么?
  • 首先你不需要设置belongsTo和hasMany。 根据你的数据库模式,只使用一个。

    要获得video模型上的FirstFrameId和LastFrameId,您需要使用:

     Video.belongsTo(Frame, {as: 'FirstFrame'}); Video.belongsTo(Frame, {as: 'LastFrame'}); 

    这是在Sequelize文档中指定的,你可以在这里查看

    “即使它被称为HasOne关联,对于大多数1:1关系,通常也需要BelongsTo关联,因为BelongsTo将在hasOne将添加到目标上的源上添加外键。