Express Sequelize和Graphql反向查找
我有两种型号:Express Sequelize和Graphql反向查找,express,sequelize.js,graphql,apollo-server,Express,Sequelize.js,Graphql,Apollo Server,我有两种型号: 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
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!
}
如果给定一个鱼ID列表,我将如何查找Dall Rivers?我不确定查询必须如何查找graphql和sequelize中的这个
type Query {
river(id: ID!): River
**rivers(fishIds: ARRAY): River ??????**
fishes: [Fish]
}
Query: {
rivers: (_, { fishIds }) => {
return River.findAll({
where: {
fishes: fishIds
}
});
},
}
您可以为包含的每个模型指定
WHERE
子句。此外,这样做会将渴望加载转换为内部联接(这是您想要的),除非您显式地将required
参数设置为false
这意味着您应该能够执行以下操作:
River.findAll({ include:
[
{
model: Fish,
where: { id: fishIds }
},
],
})
这似乎是有效的,虽然我的协会不起作用,现在什么也没有返回。