DynamoDB Query API

本文档详细解释了AmazonDynamoDBAPI中进行查询操作时的各种参数,包括AttributesToGet、ConditionalOperator、ConsistentRead、KeyConditionExpression等,帮助开发者理解和使用DynamoDB的查询功能。
摘要由CSDN通过智能技术生成

查询格式

{
   "AttributesToGet": [ "string" ],
   "ConditionalOperator": "string",
   "ConsistentRead": boolean,
   "ExclusiveStartKey": { 
      "string" : { 
         "B": blob,
         "BOOL": boolean,
         "BS": [ blob ],
         "L": [ 
            "AttributeValue"
         ],
         "M": { 
            "string" : "AttributeValue"
         },
         "N": "string",
         "NS": [ "string" ],
         "NULL": boolean,
         "S": "string",
         "SS": [ "string" ]
      }
   },
   "ExpressionAttributeNames": { 
      "string" : "string" 
   },
   "ExpressionAttributeValues": { 
      "string" : { 
         "B": blob,
         "BOOL": boolean,
         "BS": [ blob ],
         "L": [ 
            "AttributeValue"
         ],
         "M": { 
            "string" : "AttributeValue"
         },
         "N": "string",
         "NS": [ "string" ],
         "NULL": boolean,
         "S": "string",
         "SS": [ "string" ]
      }
   },
   "FilterExpression": "string",
   "IndexName": "string",
   "KeyConditionExpression": "string",
   "KeyConditions": { 
      "string" : { 
         "AttributeValueList": [ 
            { 
               "B": blob,
               "BOOL": boolean,
               "BS": [ blob ],
               "L": [ 
                  "AttributeValue"
               ],
               "M": { 
                  "string" : "AttributeValue"
               },
               "N": "string",
               "NS": [ "string" ],
               "NULL": boolean,
               "S": "string",
               "SS": [ "string" ]
            }
         ],
         "ComparisonOperator": "string"
      }
   },
   "Limit": number,
   "ProjectionExpression": "string",
   "QueryFilter": { 
      "string" : { 
         "AttributeValueList": [ 
            { 
               "B": blob,
               "BOOL": boolean,
               "BS": [ blob ],
               "L": [ 
                  "AttributeValue"
               ],
               "M": { 
                  "string" : "AttributeValue"
               },
               "N": "string",
               "NS": [ "string" ],
               "NULL": boolean,
               "S": "string",
               "SS": [ "string" ]
            }
         ],
         "ComparisonOperator": "string"
      }
   },
   "ReturnConsumedCapacity": "string",
   "ScanIndexForward": boolean,
   "Select": "string",
   "TableName": "string"
}

表名 TableName

包含所请求项的表的名称。

类型:字符串

长度约束:最小长度为 3。最大长度为 255。

模式:[a-zA-Z0-9_.-]+

必需:是

属性获取 AttributesToGet

这是一个旧参数。请改用。欲了解更多信息 信息,请参阅 Amazon DynamoDB 开发人员中的 AttributesToGet 指南。ProjectionExpression

类型:字符串数组

数组成员:最少 1 个项目。

长度约束:最大长度为 65535。

必需:否

条件运算符 ConditionalOperator

这是一个旧参数。请改用。欲了解更多信息 信息,请参阅 Amazon DynamoDB 开发人员中的条件运算符 指南。FilterExpression

类型:字符串

有效值:AND | OR

必需:否

一致读取 ConsistentRead

确定读取一致性模型:如果设置为 ,则操作 使用强一致性读取;否则,操作使用最终一致性 读。true

全局二级索引不支持强一致性读取。如果您查询 设置为 的全局二级索引 ,你将收到 .ConsistentReadtrueValidationException

类型:布尔值

必需:否

独占启动键 ExclusiveStartKey

此操作将计算的第一项的主键。使用值 在上一个操作中返回。LastEvaluatedKey

的数据类型必须是字符串、数字或二进制。不 允许设置数据类型。ExclusiveStartKey

类型:字符串到属性值对象映射

密钥长度约束:最大长度为 65535。

必需:否

表达式属性名称 ExpressionAttributeNames

表达式中属性名称的一个或多个替换标记。以下 是使用的一些用例:ExpressionAttributeNames

访问名称与 DynamoDB 保留的属性冲突的属性 词。

创建占位符,用于在 表达。

防止属性名称中的特殊字符被误解 在表达式中。

在表达式中使用 # 字符取消引用 属性名称。例如,请考虑以下属性名称:

Percentile

此属性的名称与保留字冲突,因此无法使用 直接在表达式中。(有关保留字的完整列表,请参阅 Amazon DynamoDB 开发人员中的保留字 指南)。要解决此问题,您可以为 指定以下内容:ExpressionAttributeNames

{“#P”:“Percentile”}

然后,您可以在表达式中使用此替换,如以下示例所示:

#P = :val

注意
以 : 字符开头的标记是表达式属性值,它们是 运行时的实际值。

有关表达式属性名称的更多信息,请参阅在 Amazon DynamoDB 开发人员中指定项目属性 指南。

类型:字符串到字符串映射

值长度约束:最大长度为 65535。

必需:否

表达式属性值 ExpressionAttributeValues

可在表达式中替换的一个或多个值。

在表达式中使用 :(冒号)字符来 取消引用属性值。例如,假设您要检查是否 “产品状态”属性的值为下列值之一:

Available | Backordered | Discontinued

您首先需要指定为 遵循:ExpressionAttributeValues

{ “:avail”:{“S”:“Available”}, “:back”:{“S”:“Backordered”}, “:disc”:{“S”:“Discontinued”} }

然后,您可以在表达式中使用这些值,如下所示:

ProductStatus IN (:avail, :back, :disc)

有关表达式属性值的更多信息,请参阅在 Amazon DynamoDB 开发人员中指定条件 指南。

类型:字符串到属性值对象映射

必需:否

过滤器表达式 FilterExpression

一个字符串,包含 DynamoDB 在操作之后但在数据返回给您之前应用的条件。不满足条件的物品不予退还。QueryFilterExpression

A 不允许键属性。**您不能定义 基于分区键或排序键的筛选表达式。**FilterExpression

注意
A 在已读取项目后应用 A; 筛选过程不会消耗任何额外的读取容量单位。FilterExpression

有关更多信息,请参阅 Amazon DynamoDB 开发人员中的筛选表达式 指南。

类型:字符串

必需:否

索引名称 IndexName

要查询的索引的名称。此索引可以是任何本地二级索引或全局索引 表上的二级索引。请注意,如果您使用该参数, 您还必须提供IndexNameTableName.

类型:字符串

长度约束:最小长度为 3。最大长度为 255。

模式:[a-zA-Z0-9_.-]+

必需:否

键条件表达式 KeyConditionExpression

指定要由操作检索的项目的键值的条件。Query

该条件必须对单个分区键值执行相等性测试。

条件可以选择对单个排序执行多个比较测试之一 键值。这允许检索具有给定分区的一个项目 键值和排序键值,或具有相同分区键值的多个项目 但排序键值不同。Query

分区键相等性测试是必需的,必须在以下项中指定 格式:

partitionKeyName = :partitionkeyval

如果还想为排序键提供条件,则必须将其与排序键的条件结合使用。下面是一个示例,使用 排序键的 = 比较运算符:AND

partitionKeyName = :partitionkeyval AND sortKeyName = :sortkeyval

排序键条件的有效比较如下所示:

sortKeyName = :sortkeyval- 如果排序键值等于 ,则为 true。:sortkeyval

sortKeyName < :sortkeyval- 如果排序键值小于 。:sortkeyval

sortKeyName <= :sortkeyval- 如果排序键值小于或等于 ,则为 true。:sortkeyval

sortKeyName > :sortkeyval- 如果排序键值大于 。:sortkeyval

sortKeyName >= :sortkeyval- 如果排序键值大于或等于,则为 true 自。:sortkeyval

sortKeyName BETWEEN :sortkeyval1 AND :sortkeyval2- 如果排序键值大于或等于,则为 true 到 ,且小于或等于 。:sortkeyval1:sortkeyval2

begins_with ( sortKeyName, - 如果排序键值以特定操作数开头,则为 true。 (不能将此函数与 Number 类型的排序键一起使用。请注意, 函数名称区分大小写。:sortkeyval)begins_with

使用该参数将标记(如 和)替换为实际值 运行。ExpressionAttributeValues:partitionval:sortval

您可以选择使用该参数来替换 分区键的名称和带有占位符标记的排序键。此选项可能会 如果属性名称与 DynamoDB 保留字冲突,则为必需。例如 以下参数会导致错误,因为 Size 是保留字:ExpressionAttributeNamesKeyConditionExpression

Size = :myval

要解决此问题,请定义一个占位符(例如 )来表示 属性名称大小。 然后是作为 遵循:#SKeyConditionExpression

#S = :myval

有关保留字的列表,请参阅 Amazon DynamoDB 开发人员指南 中的保留字。

有关 和 的详细信息,请参阅使用 Amazon DynamoDB 中属性名称和值的占位符 开发人员指南。ExpressionAttributeNamesExpressionAttributeValues

类型:字符串 KeyConditions

必需:否

关键条件
这是一个旧参数。请改用。欲了解更多信息 信息,请参阅 Amazon DynamoDB 开发人员中的密钥条件 指南。KeyConditionExpression

类型:字符串到条件对象映射

密钥长度约束:最大长度为 65535。

必需:否

限制 Limit

要评估的最大项目数(不一定是匹配项数) 项)。如果 DynamoDB 在处理 结果,它停止操作并返回到该点为止的匹配值,并且 键入以在后续操作中应用,以便您可以 从上次中断的地方继续。此外,如果处理的数据集大小在之前超过 1 MB DynamoDB 达到此限制,它将停止操作并返回匹配值 到限制,并在后续应用中应用一个键 操作以继续操作。有关更多信息,请参阅 Amazon DynamoDB 开发人员中的查询和扫描 指南。LastEvaluatedKeyLastEvaluatedKey

类型:整数

有效范围:最小值为 1。

必需:否

投影表达式 ProjectionExpression

一个字符串,标识要从表中检索的一个或多个属性。这些 属性可以包括 JSON 文档的标量、集或元素。中的属性 表达式必须用逗号分隔。

如果未指定属性名称,则将返回所有属性。如果其中任何一项 未找到请求的属性,它们不会出现在结果中。

有关更多信息,请参阅 在 Amazon DynamoDB 开发人员中访问项目属性 指南。

类型:字符串

必需:否

查询筛选器 QueryFilter

这是一个旧参数。请改用。欲了解更多信息 信息,请参阅 Amazon DynamoDB 开发人员中的查询筛选条件 指南。FilterExpression

类型:字符串到条件对象映射

密钥长度约束:最大长度为 65535。

必需:否

返回消耗容量 ReturnConsumedCapacity

确定有关预配吞吐量或按需吞吐量的详细级别 响应中返回的消耗量:

INDEXES- 响应包括操作的聚合,以及每个表和二级索引的聚合 访问。ConsumedCapacityConsumedCapacity

请注意,某些操作(如 和 )根本不访问任何索引。在这些情况下, 指定将仅返回表的信息。GetItemBatchGetItemINDEXESConsumedCapacity

TOTAL- 响应仅包括操作的聚合。ConsumedCapacity

NONE- 不包含详细信息 响应。ConsumedCapacity

类型:字符串

有效值:INDEXES | TOTAL | NONE

必需:否

扫描索引转发 ScanIndexForward

指定索引遍历的顺序:如果(默认),则遍历 按升序执行;如果 ,则遍历在 降序。truefalse

具有相同分区键值的项目按排序键的排序顺序存储。如果 排序键数据类型为数字,结果按数字顺序存储。对于字符串类型, 结果按 UTF-8 字节的顺序存储。对于二进制类型,DynamoDB 处理每个 二进制数据的字节为无符号。

如果为 ,则 DynamoDB 返回以下结果: 它们的存储顺序(按排序键值)。这是默认行为。如果是,则 DynamoDB 读取 按排序键值反转顺序,然后将结果返回到客户端。ScanIndexForwardtrueScanIndexForwardfalse

类型:布尔值

必需:否

选择 Select

要在结果中返回的属性。您可以检索所有项目属性, 特定项目属性、匹配项目计数,或者在索引的情况下,一些 或投影到索引中的所有属性。

ALL_ATTRIBUTES- 返回来自 指定的表或索引。如果查询本地二级索引,则对于每个 匹配索引中的项目,DynamoDB 从父级获取整个项目 桌子。如果索引配置为投影所有项目属性,则所有 数据可以从本地二级索引获取,无需提取 必填。

ALL_PROJECTED_ATTRIBUTES- 仅在查询索引时允许。 检索已投影到索引中的所有属性。如果索引 配置为投影所有属性,此返回值等效于 指定。ALL_ATTRIBUTES

COUNT- 返回匹配项的数量,而不是 匹配项目本身。请注意,这使用相同数量的读取容量单位 作为获取项目,并受制于相同的项目大小计算。

SPECIFIC_ATTRIBUTES- 仅返回 中列出的属性。此返回值等效于 指定而不指定任何值。ProjectionExpressionProjectionExpressionSelect

如果查询或扫描本地二级索引并仅请求以下属性: 投影到该索引中,操作将仅读取索引,而不读取索引 表。如果任何请求的属性未投影到本地 二级索引,DynamoDB 从父级获取这些属性中的每一个 桌子。这种额外的提取会产生额外的吞吐量成本和延迟。

如果查询或扫描全局二级索引,则只能请求属性 被预测到索引中。全局二级索引查询无法提取 父表中的属性。

如果既未指定也不指定, DynamoDB 默认为访问表和访问索引时。您不能同时使用两者和 请求,除非 的值为 。 (此用法等效于指定没有任何 的值。SelectProjectionExpressionALL_ATTRIBUTESALL_PROJECTED_ATTRIBUTESSelectProjectionExpressionSelectSPECIFIC_ATTRIBUTESProjectionExpressionSelect

注意
如果使用参数,则 的值只能为 。任何其他 的值将返回错误。ProjectionExpressionSelectSPECIFIC_ATTRIBUTESSelect

类型:字符串

有效值:ALL_ATTRIBUTES | ALL_PROJECTED_ATTRIBUTES | SPECIFIC_ATTRIBUTES | COUNT

必需:否

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值