gpt4 book ai didi

c# - 如何在 DynamoDB 的扫描中选择嵌套属性?

转载 作者:行者123 更新时间:2023-11-30 23:28:37 24 4
gpt4 key购买 nike

我意识到这在 documentation 中得到了回答(基本上,“使用点语法”),但我仍然遗漏了一些东西。我正在使用 .NET SDK,并且需要能够从扫描中选择几个属性,其中一个是 Map 属性中的 bool 值。请注意,我并不是要过滤结果。我想要所有的项目,但我只想要返回给我的一些属性。

var config = new ScanOperationConfig
{
AttributesToGet = new List<string> { "foo.bar" },
Select = SelectValues.SpecificAttributes
};
var search = Table.Scan(config);
var documents = await search.GetRemainingAsync();

此代码为我提供了我期望的项目,但它缺少“foo.bar”属性。我知道我可以选择整个 foo 对象,但我正在尝试尽量减少返回的数据量。我不想要 foo 对象中的其他属性。

商品的相关属性JSON格式如下:

{
"foo": {
"bar": true
}
}

我检查了拼写、区分大小写等,但均无济于事。知道出了什么问题吗?

最佳答案

不使用 Table.Scan,而是使用 AmazonDynamoDBClient,您将获得更多选择。

客户端的 ScanAsync 方法接受一个 ScanRequest,它有一个 ProjectionExpression 字符串。这不存在于 ScanOperationConfig 类中,这是混淆的根源。

像这样使用ProjectionExpression:

var scanRequest = new ScanRequest(Table.TableName)
{
ProjectionExpression = "foo.bar"
};

根据ProjectionExpression 的文档:

ProjectionExpression replaces the legacy AttributesToGet parameter.

我没有意识到 AttributesToGet 是遗留问题,直到最终在客户端寻找一个完全不相关的问题并且碰巧找到了我对这个问题的答案。

关于c# - 如何在 DynamoDB 的扫描中选择嵌套属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35929991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com