从 AWS Amplify Graphql 过滤数据 API
Filtering data from AWS Amplify Graphql API
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”的数据。
type: "image/mp4"
我知道我可以通过这种方式根据标题获取一些数据。
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 } } })
)
是否有任何类似的方法来获取其属性之一包含特定值的数据?
“包含”而不是“完全相同”
如 AWS Amplify documentation you can use corresponding DynamoDB queries 中所述。其中一个查询是包含,但它取决于您正在过滤的字段类型。 DynamoDB 支持的所有运算符列表:
- 情商
- NE
- 乐
- LT
- GE
- 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 } } })
)
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”的数据。
type: "image/mp4"
我知道我可以通过这种方式根据标题获取一些数据。
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 } } })
)
是否有任何类似的方法来获取其属性之一包含特定值的数据?
“包含”而不是“完全相同”
如 AWS Amplify documentation you can use corresponding DynamoDB queries 中所述。其中一个查询是包含,但它取决于您正在过滤的字段类型。 DynamoDB 支持的所有运算符列表:
- 情商
- NE
- 乐
- LT
- GE
- 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 } } })
)