У меня две модели:
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!
}
Как мне найти All Rivers по списку 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
}
});
},
}





Вы можете указать пункты WHERE для каждой из включаемых вами моделей. Более того, это преобразует нетерпеливую нагрузку во внутреннее соединение (что вам и нужно), если вы явно не установите для параметра required значение false.
Это означает, что вы должны уметь делать что-то вроде:
River.findAll({ include:
[
{
model: Fish,
where: { id: fishIds }
},
],
})
Кажется, это работает, хотя мои ассоциации не работают и теперь ничего не возвращается. stackoverflow.com/questions/50935562/…