如何仅使用Hasura以变量形式查询包含数组中每个元素的对象?

问题描述 投票:0回答:1

我的数据库中有一个'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 } }

但是我真的很想避免这种情况,并找到一些静态解决方案。有没有办法使用Hasura提供的过滤器来实现这一目标? (https://hasura.io/docs/1.0/graphql/manual/queries/query-filters.html#
我在数据库中有一个'Students'表(与Hasura一起进入Postgress),与'Subjects'有多对多关系:类型Student = {id:uuid名称:字符串subject:[subject]} type Subject = {id :...
reactjs graphql apollo hasura
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.