【问题标题】:Filtering data from AWS Amplify Graphql API从 AWS Amplify Graphql API 过滤数据
【发布时间】:2021-08-31 04:23:17
【问题描述】:

Graphql 架构:

type Media @model
{
  id: ID!
  title: String
  type: String
}

样本数据:

{
      id: "some ID",
      title: "sample media1",
      type: "image/png",
}

{
      id: "some ID",
      title: "sample media2",
      type: "video/mp4",
}

我只想获取其类型包含字符串“image”的数据。

类型:“图像/mp4”

我知道这样可以得到一些基于title的数据。

import { API, graphqlOperation } from "aws-amplify"
import * as queries from "@src/graphql/queries"
...
let title = "sample media1"
const medias = await API.graphql(
                 graphqlOperation(queries.listMedias, { filter: { title: { eq: title } } })
               )

是否有任何类似的方法来获取其属性之一包含特定值的数据?

“包含”不“完全相同”

【问题讨论】:

    标签: javascript reactjs graphql aws-amplify amazon-dynamodb


    【解决方案1】:

    如 AWS Amplify documentation 中所述,您可以使用相应的 DynamoDB queries。其中一个查询是包含,但它取决于您正在过滤的字段类型。 DynamoDB 支持的所有算子列表:

    • 情商
    • 东北
    • LT
    • 通用电气
    • GT
    • NOT_NULL
    • 包含
    • NOT_CONTAINS
    • BEGINS_WITH
    • 之间

    所以在你的例子中:

    import { API, graphqlOperation } from "aws-amplify"
    import * as queries from "@src/graphql/queries"
    ...
    let title = "sample media1"
    const medias = await API.graphql(
                     graphqlOperation(queries.listMedias, { filter: { title: { contains: title } } })
                   )
    

    【讨论】:

    • 谢谢伊万,你的建议对我很有效。
    猜你喜欢
    • 2022-07-30
    • 2019-06-02
    • 2019-05-25
    • 2020-04-08
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 2020-10-26
    • 2021-05-21
    相关资源
    最近更新 更多