gpt4 book ai didi

c# - 如何限制 .NET 中 DynamoDB 中 context.Query 的结果数量

转载 作者:行者123 更新时间:2023-12-04 08:56:14 24 4
gpt4 key购买 nike

我试图在查询表时限制 DynamoDB 返回的项目数。我只需要第一个匹配结果。
目标是减少所消耗的读取单元的数量,并努力保持我正在使用的代码的可读性context.Query查询二级本地索引并获得第一个匹配结果。
这是当前查询:

context.Query<TableEntry>(matchId, new DynamoDBOperationConfig { IndexName = "SecondaryId-index" })
这将返回所有属于 SecondaryId-index 的项目匹配 matchId ,但是我只想要它匹配的第一个项目。
所以我尝试了这个:
context.Query<TableEntry>(matchId, new DynamoDBOperationConfig { IndexName = "SecondaryId-index" }).First()
据我了解 context.Query (即使它很懒惰)仍将执行整个查询并至少读取第一页(使用 .First() 枚举时)并且该页面将包含多个项目,因此消耗的读取容量单位比所需的要多。
我找不到有关如何仅使用 context.Query 将查询限制为第一个匹配项的任何文档在.NET 中。
这甚至可能吗?如果不是,在保持代码最小/干净的同时,下一个最佳选择是什么?

最佳答案

不,这是不可能的。数据模型模式非常愚蠢:它提供了一个方便的接口(interface)来执行常见的操作,而无需编写任何样板,但代价是性能和控制。
您需要使用低级 DynamoDbClient .对于需要控制其请求的应用程序,您可能希望删除 DynamoDbContext ,而是围绕客户端创建自己的包装器,以公开您需要的任何请求属性。
请记住 DynamoDbContext对其FromDocument 仍然有用和 ToDocument方法,这对于将对象序列化到/从客户端请求/响应中找到的属性字典(反序列化)有很大帮助。

关于c# - 如何限制 .NET 中 DynamoDB 中 context.Query 的结果数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63820529/

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