Amazon web services 带过滤器的扫描在DynamoDB中返回零结果
我有一张DynamoDB中大约有300000行的桌子。它包含三列:源、数据和周期。源属性是散列键,数据是范围键。cycles属性是应用程序在每次添加行时添加的数字。我使用以下过滤器扫描这些行:Amazon web services 带过滤器的扫描在DynamoDB中返回零结果,amazon-web-services,amazon-dynamodb,database-scan,nosql,Amazon Web Services,Amazon Dynamodb,Database Scan,Nosql,我有一张DynamoDB中大约有300000行的桌子。它包含三列:源、数据和周期。源属性是散列键,数据是范围键。cycles属性是应用程序在每次添加行时添加的数字。我使用以下过滤器扫描这些行: { TableName: "tableName", Limit: 20, ScanFilter: { cycles: { AttributeValueList: [ {
{
TableName: "tableName",
Limit: 20,
ScanFilter: {
cycles: {
AttributeValueList: [
{
N: "0"
}
],
ComparisonOperator: "EQ"
}
}
}
然而,这个扫描过滤器似乎已经决定不再正常工作。每当我执行此请求时,它都将返回零结果。当我删除scanfilter时,它返回20个结果,因此我假设它与limit或tableName属性无关。有趣的是,当我将过滤器设置为查找周期为“1”的项目时,它实际上起作用了,可能是因为在表的开头有10行周期为1
我的问题只是如何解决这个问题。我应该添加新索引,还是更改此扫描筛选器?我也可以尝试使用query命令而不是scan,但是我以前尝试的方法也没有成功。没关系,我必须使用query方法来完成这一步。我注意到scan方法只从表中获取前X行数,直到scanFilter返回false为止,所以它不会搜索整个表