【问题标题】:Sequelize and Graphql reverse lookupSequelize 和 Graphql 反向查找
【发布时间】:2018-11-28 18:35:44
【问题描述】:

我有两个模型:

River.associate = models => {
  River.hasMany(models.Fish, { as: 'Fishes' });
};

Fish.associate = models => {
  Fish.belongsTo(models.River);
};

type River {
    id: ID!
    name: String!
    alternative: String!
    geojson: JSON
    fishes: [Fish]
}

type Fish {
  id: ID!
  name: String!
}

在给定 Fish ID 列表的情况下,我如何找到所有河流?我不确定查询必须如何为 graphql 和 sequelize 查找此内容?

type Query {
  river(id: ID!): River
  **rivers(fishIds: ARRAY): River ??????**
  fishes: [Fish]
}

Query: {
rivers: (_, { fishIds }) => {
      return River.findAll({
        where: {
          fishes: fishIds
        }
      });
    },
}

【问题讨论】:

    标签: express sequelize.js graphql apollo-server


    【解决方案1】:

    您可以为包含的每个模型指定WHERE 子句。此外,除非您将 required 参数显式设置为 false,否则这样做会将急切负载转换为内部连接(这是您想要的)。

    这意味着您应该能够执行以下操作:

    River.findAll({ include:
      [
        {
          model: Fish,
          where: { id: fishIds }
        },
      ],
    })
    

    【讨论】:

    猜你喜欢
    • 2018-09-07
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 2011-10-01
    • 2014-02-16
    相关资源
    最近更新 更多