[英]AWS Dynamo DB query async with partition key
我们正在使用 dynamo db scan 功能从 dynamo 获取所有数据,就像这样,它工作正常:
var myScanConditions = new List<ScanCondition>();
myScanConditions .Add(new ScanCondition("PartitionKey", ScanOperator.BeginsWith, "data"));
var myData= await Context.ScanAsync(myScanConditions ).GetRemainingAsync();
//some code to filter some data from above
在我们的发电机数据库分区键就像
data#rec1
data#rec2
data#rec3
and so on
我想检查我们是否可以用 Query 替换 Scan。 我尝试通过将扫描条件传递给查询来使用下面的代码,但看起来它不正确。 它什么也没给我。
var myData= await Context.QueryAsync("data", myScanConditions );
所以我的问题是有一个选项可以为 QueryAsync 方法提供分区键的部分文本,并且仍然从 dynamo 返回所有记录。 例如,在我上面的情况下,如果我只是将“数据”(部分文本)传递给我的异步查询。
有没有办法做到这一点?
谢谢
不幸的是,您无法使用 Query 搜索分区键。 查询需要并且仅支持分区键上的相等运算符。
如果您确实需要搜索表中的所有记录,那么您必须执行扫描,因为这正是扫描的目的,尽管检查所有数据是有代价的。
需要考虑的一些想法:
参考:
您必须有一个复合(哈希键 + 排序键)主键才能使用查询。
如果您有“数据”作为 hash(分区)键,rec1、rec2、rec3 作为排序键,那么您可以只使用“数据”进行查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.