AWS Amplify GraphQL 使用多个输入参数获取数据

AWS Amplify GraphQL fetch data using multiple input parameters

我正在研究 Next.js,我有这个设置:

const data = await API.graphql({
  query: projectByUserIdandProjectId,
  variables: {
    userId: props.userId,
    projectId: project.id,
  },
});

然后我有这个架构:

type Project
  @model
  @key(
    name: "byUserId"
    fields: ["userId"]
    queryField: "projectByUserIdandProjectId"
  )
  id: ID!
  userId: ID!
  projectId: ID!
}

我尝试将 projectId 添加到字段中:fields: ["userId", "projectId"] 但是当我查看 amplify 的查询控制台时,它没有给我添加 projectId 的选项。

我希望能够在 userId 和 projectId 匹配时从记录中获取 1 条数据。

既然可以使用 id,为什么还要在 Project 模型中添加 projectId

我不知道你的用例,但你可以使用 filter

type Project
  @model
  @key(
    name: "byUserId"
    fields: ["userId"]
    queryField: "projectByUserId"
  )
  id: ID!
  userId: ID!
  projectId: ID!
}
import { API, graphqlOperation } from "aws-amplify";

--- 

await API.graphql(
  graphqlOperation(projectByUserId, {
    userId: props.userId,
    filter: { projectId: { eq: props.projectId } }
  })
);