查询特定的GET字段?

时间:2019-07-31 16:10:48

标签: javascript database reactjs amazon-dynamodb aws-appsync

如何从给定的“ id:”的AppSync / Dynamo表中的条目中仅获取一个字段(称为“名称”)?这不是让该“ 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
  }
}

2 个答案:

答案 0 :(得分:1)

尝试以下

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

答案 1 :(得分:0)

您的查询正在从您的graphql服务器中查询getUsers,并询问idnameemail

如果只需要name,则将查询更改为:

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