javascript - 从 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”的数据。
类型:“图像/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文档中所述,您可以使用相应的 DynamoDB 查询。其中一个查询是包含,但它取决于您正在过滤的字段类型。DynamoDB 支持的所有算子列表:
- 情商
- 网元
- 乐
- LT
- 通用电气
- 燃气轮机
- NOT_NULL
- 空值
- 包含
- NOT_CONTAINS
- 开始于
- 在
- 之间
所以在你的例子中:
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 } } })
)
推荐阅读
- jsp - thymeleaf 无法解析表达式
- css - 如何使 css hover/focus 伪类正常工作
- python - 尝试使用 Django 框架在 html 表中呈现数据库中的数据
- cypress - 使用 cypress 存根网络请求
- reactjs - 警告:无效的 DOM 属性 `tabindex`。您是说“tabIndex”吗?
- node.js - 无法在 Azure 上发出 POST 请求 - EACCES
- python-3.x - `fixed-point` 中的内部 `try` 交互
- java - 如何在数组列表(Java)中搜索对象的元素,如果存在,则打印该对象的 .toString
- swift - 子类和超类的 Swift 约束协议
- java - 从子类对象调用非覆盖方法