查询特定的 GET 字段?

Query a specific GET field?

对于给定的 "id:",如何从我的 AppSync/Dynamo table 的条目中仅获取一个字段(称为 "name")?这不是将 'id' 的整行字段返回给我。我只需要单个字段。

以下无效:

const userName = await API.graphql(graphqlOperation(GetUsers, { id: "3b342de-34k5-434....." }, "name") );

架构:

type Users @model {
  id: ID!
  name: String
  email: String
}

查询:

export const getUsers = `query GetUsers($id: ID!) {
  getUsers(id: $id) {
    id
    name
    email
  }
}

试试下面

export const getUser = `query GetUsers($id: ID!) {
  getUsers(id: $id) {name}
}`

const userName = (await API.graphql(graphqlOperation(getUsers, {id: "xxx"}))).getUser.data.name

请注意 await 为您提供了一个包含 name 的嵌套对象。你必须把它提取出来。另外,你真正需要的是type User,而不是type Users.

您的查询正在从您的 graphql 服务器查询 getUsers,并且要求 idnameemail

如果您只想要 name,请将查询更改为:

query GetUsers($id: ID!) {
  getUsers(id: $id) {
    name
  }
}