棱镜graphql查询单用户

时间:2018-08-21 06:12:51

标签: graphql gatsby prismic.io

我试图弄清楚如何通过id从graphql模式中查询单个用户。我正在使用graphiql工具,并且能够获得所有用户。

{
    allPrismicUsers {
      edges {
        node {
          id
        data {
          name
        }
        }
      }
    }
}

输出:

{
  "data": {
    "allPrismicUsers”: {
      "edges": [
        {
          "node": {
            "id": "Prismic__User__WzKFwywAABmiZk_4",
            "data": {
              "name": “John Doe”
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKDZywAABmiZkYp",
            "data": {
              "name": “Jane Doe“
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKGDiwAAJSiZlFL",
            "data": {
              "name": “Cat Doe”
            }
          }
        }
      ]
    }
  }
}

我在模式上也有pyramidicUser()

query {
  prismicUser {
    id
    data {
      name
    }
  }
}

输出:

{
  "data": {
    "prismicUser": {
      "id": "Prismic__User__WzKGDiwAAJSiZlFL",
      "data": {
        "name": "Cat Doe"
      }
    }
  }
}

我正在尝试根据特定的ID查询用户,但不确定是否查询错误的方式。 我试过了

query {
  prismicLocation(id: "Prismic__User__WzKDZywAABmiZkYp") {
    data {
      name
    }
  }
}

我收到错误

  

{“错误”:[       {         “ message”:“参数\” id \“具有无效值\” Prismic__User__WzKDZywAABmiZkYp \“。\ n期望   \“ prismicUserIdQueryString_2 \”,未找到对象。“,         “用户”:[           {             “行”:25,             “栏”:23           }         ]       }]}

如何根据他们的ID呼叫特定用户?

1 个答案:

答案 0 :(得分:0)

根据Gatsby GraphQL reference,Gatsby允许您按GraphQL中的任何字段过滤结果(使用eqne等运算符)

gatsby-source-prismic插件提供了一个名为prismicId(即W1syKSIAAAzdN1Jg)的字段。

这是一个示例查询:

{
  prismicUser(prismicId:{eq:"WzKDZywAABmiZkYp"}) {
    data {
      name
    }
  }
}

但是您也可以通过id进行查询:

prismicUser(id:{eq:"Prismic__User__WzKDZywAABmiZkYp"})