序列化-渴望加载具有可选作用域的关联

时间:2018-08-28 17:48:34

标签: node.js sequelize.js

我正在尝试加载彼此关联的2个模型。问题是,当使用类似于文档的范围时,它是必填项

我的情况是将Study个模型与多个Product模型相关联。

有几种Study模型尚不具有任何Product关联(它们最初不是创建的)。

我的定义如下:

const Study = sequelize.define(
  'study',
   ...
    scopes: {
      withProducts: {
        include: [
          {
            model: Product
          }
        ]
      },

有20个Study条目,但是以下内容仅返回14,因为其中Study个条目中的6个没有任何Product关系。

const allStudies = await Study.scope('withProducts').findAll()

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

在这种情况下,您必须显式设置required: false

const Study = sequelize.define(
  'study',
   ...
    scopes: {
      withProducts: {
        include: [
          {
            required: false, // HERE
            model: Product
          }
        ]
      },