筛选条件 - Amazon AppSync GraphQL
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

筛选条件

在使用 QueryScan 操作查询 DynamoDB 中的对象时,您可以选择指定 filter 以评估结果并仅返回所需的值。

QueryScan 请求的 filter 属性具有以下结构:

type DynamoDBExpression = { expression: string; expressionNames?: { [key: string]: string}; expressionValues?: { [key: string]: any}; };

字段定义如下:

expression

查询表达式。有关如何编写筛选表达式的更多信息,请参阅 DynamoDB 和 Dynam QueryFilter oDB 文档。 ScanFilter必须指定该字段。

expressionNames

以键值对形式替换表达式属性名称 占位符。键对应于 expression 中使用的名称占位符。该值必须是与 DynamoDB 中的项目的属性名称对应的字符串。该字段是可选的,只应填充 expression 中使用的表达式属性名称占位符的替换内容。

expressionValues

以键值对形式替换表达式属性 占位符。键对应于 expression 中使用的值占位符,而值必须为类型化值。有关如何指定“类型化值”的更多信息,请参阅类型系统(请求映射)。必须指定此值。该字段是可选的,只应填充 expression 中使用的表达式属性值占位符的替换内容。

示例

以下示例是请求的筛选条件部分,其中,只有在标题以 title 参数开头时,才会返回从 DynamoDB 中检索的条目。

此处,我们使用 util.transform.toDynamoDBFilterExpression 从对象中自动创建筛选条件:

const filter = util.transform.toDynamoDBFilterExpression({ title: { beginsWith: 'far away' }, }); const request = {}; request.filter = JSON.parse(filter);

这会生成以下筛选条件:

{ "filter": { "expression": "(begins_with(#title,:title_beginsWith))", "expressionNames": { "#title": "title" }, "expressionValues": { ":title_beginsWith": { "S": "far away" } } } }