Amazon dynamodb DynamoDB:对同一字段进行筛选和排序?

Amazon dynamodb DynamoDB:对同一字段进行筛选和排序?,amazon-dynamodb,dynamodb-queries,amazon-dynamodb-index,Amazon Dynamodb,Dynamodb Queries,Amazon Dynamodb Index,我有一个本地索引的表,如下所示 如何进行类似startDate

我有一个本地索引的表,如下所示

如何进行类似startDate 据我所知,要对结果进行排序,我需要使用InvoiceDateLocalIndex。但是如果我使用了,就会出现错误“筛选器表达式只能包含非主键属性:主键属性:InvoiceDate”


实际上,不能在范围键(
InvoiceDate
)上使用
filteexpression
。但这样做的原因并不是不能做到——禁止这样做的原因是为了防止你犯下代价高昂的错误:

要仅请求范围键的范围,应使用
KeyConditionExpression
,而不是
filtereexpression


使用
KeyConditionExpression
更快更便宜,因为DynamoDB只检索匹配的项,而
filtereexpression
将读取(并向您收费)整个分区。这就是为什么“范围键”被称为“范围键”——它们允许您有效地请求该键的范围。它们也被称为“排序键”,因为它们不仅仅是范围-它们实际上是被排序的。

您能给我举个例子,说明如何使用KeyConditionExpression来解决我的问题吗?因为我是dynamoDB新手,不熟悉dynamoDB查询语法(我们使用dynamoose)KeyConditionExpression与FilterExpression(我假设您正在使用)具有相同的语法,它只是一个单独的变量,您需要在那里列出键属性上的条件,而不是在FilterExpression中。文件如下:
"IndexName": "InvoiceDateLocalIndex",
 "KeySchema": [
  {
     "AttributeName": "FinanceYear",
     "KeyType": "HASH"
  },
  {
     "AttributeName": "InvoiceDate",
     "KeyType": "RANGE"
  }
]