c# - 使用文档模型拉取完整的 dynamodb 表
问题描述
string tableName = _awsSettings.TableSettings.Table + _awsSettings.TableSettings.Suffix;
Table table = Table.LoadTable(_amazonDynamoDb, tableName);
DocumentBatchGet batch = table.CreateBatchGet();
await batch.ExecuteAsync();
List<Document> results = batch.Results;
return results.As<Lab>();
上面的代码返回 0 个结果。我希望归还整张桌子。
如何使用文档模型 ( Table.LoadTable
) 拉出整个表格?
解决方案
该Table.LoadTable()
方法返回一个Table
对象,该对象基本上是 DynamoDB 客户端的包装器。此对象不包含 AWS 中实际表中的任何数据。
要读取表中的所有项目,您需要使用该Table.Scan()
方法。这是一些用于scan
将表的内容转储到标准输出的示例代码。
private static void DumpTable(Table table)
{
ScanFilter scanFilter = new ScanFilter();
Search search = productCatalogTable.Scan(scanFilter);
List<Document> documentList = new List<Document>();
do
{
documentList = search.GetNextSet();
foreach (var document in documentList)
PrintDocument(document);
} while (!search.IsDone);
}
private static void PrintDocument(Document document)
{
// count++;
Console.WriteLine();
foreach (var attribute in document.GetAttributeNames())
{
string stringValue = null;
var value = document[attribute];
if (value is Primitive)
stringValue = value.AsPrimitive().Value.ToString();
else if (value is PrimitiveList)
stringValue = string.Join(",", (from primitive
in value.AsPrimitiveList().Entries
select primitive.Value).ToArray());
Console.WriteLine("{0} - {1}", attribute, stringValue);
}
}
推荐阅读
- spring - 春季批处理错误NoSuchJobException:没有这样的工作(在注册表或历史数据中)
- bash - 用 tr 或类似的交换 bash 中的两个字符
- python - 使用 GroupBy 并使用 Jinja2 将 Pandas Dataframe 渲染为单独的 HTML 文件
- c# - С# LINQ IQueryable Take
- c - OpenGL的工作组大小和本地大小有什么区别?
- r - 基于R中时间序列的平均值删除变量
- spring-boot - Spring Boot REST服务Kafka主题commitSync失败
- sas - 吐出打开的程序中使用的数据源和库
- haskell - 使用 floskell 格式化时,有没有办法不对齐我的代码?
- tableau-api - 使用列的 Tableau 筛选器