我的数据库中有一个'Students'表(与Hasura一起进行postgress),与'Subjects'有多对多关系:
type Student = {
id: uuid
name: String
subjects: [subject]
}
type Subject = {
id: uuid
name: String
}
我有一个静态查询1:
query FilteredStudents($subjects: [String!]) {
students(where: { subjects: { name: { _in: $subjects } } }) {
id
name
}
}
例如:
$subjects = ['Math', 'English', 'Physics']
它将找到所有参加这些课程的[[ANY的学生。例如:]]const student1 = {
id: 1,
name: 'Mike',
subjects: ['Physics', 'Chemistry'] // subjects mapped to names for simplicity
}
我的问题是我想要另一个查询,该查询将找到所有参加这些课程的[[EACH的学生。
因此它不应该获取student1
,但是应该这样获取学生:const student2 = {
id: 2,
name: 'Walt',
subjects: ['Math', 'English', 'Physics', 'Some', 'other', 'subjects'] // subjects mapped to names for simplicity
}
动态查询2:
query FilteredStudents {
students(where: { _and: [
subjects: { name: { _eq: "Math" } }
subjects: { name: { _eq: "English" } }
subjects: { name: { _eq: "Physics" } }
]}) {
id
name
}
}
我在数据库中有一个'Students'表(与Hasura一起进入Postgress),与'Subjects'有多对多关系:类型Student = {id:uuid名称:字符串subject:[subject]} type Subject = {id :...