【问题标题】:DynamoDB .Net limit a scan that uses 'begins with'DynamoDB .Net 限制使用“开始于”的扫描
【发布时间】:2016-04-12 15:15:44
【问题描述】:

此代码使用 Dynamo,但使用 C# 编码。

我有一个使用 scanFilter 的扫描:

Table table = Table.LoadTable(amazonClient, tableName);
ScanFilter scanFilter = new ScanFilter();
scanFilter.AddCondition("HashString", ScanOperator.BeginsWith, index);
Search search = table.Scan(scanFilter); // more code follows utilising the results

//索引是要搜索的字符串的值

// amazonClient 只是 AWS 的参数

// tableName 是表的名称

这可以正常工作,但我现在知道返回的项目数量可能很大,所以我需要限制任何返回页面中返回的值的数量或限制搜索的项目数量(不太理想),并获得 LastKeyEvaluated。我的问题是我看不到如何实现此方法的限制,如何获得 LastKeyEvaluated,最后,如果我有 LastKeyEvaluated 如何获得下一组结果。

我研究过使用 ScanRequest,它似乎允许限制,但我看不到如何添加“BeginsWith”过滤器表达式?也不知道如何使用 LasKeyEvaluated

我会很感激一个适用于 .Net 的建议

非常感谢

艾莉

【问题讨论】:

    标签: .net amazon-dynamodb


    【解决方案1】:

    当您调用 table.Scan 时,它实际上还没有进行扫描。它设置来自 AmazonDynamoDBClient 的底层请求对象。在返回的搜索对象上,您可以调用 GetNextSet(),这相当于在 AmazonDynamoDBClient 上调用 Scan 一次。如果您再次调用 GetNextSet,搜索对象将保持 LastKeyEvaluated 的状态,并将其传递给下一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多