Sequelize 和 Graphql 反向查找
Sequelize and Graphql reverse lookup
我有两个模特:
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 列表的情况下找到所有河流? 我不确定查询必须如何查找 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 }
},
],
})
我有两个模特:
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 列表的情况下找到所有河流? 我不确定查询必须如何查找 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 }
},
],
})