当前位置: 首页 > 知识库问答 >
问题:

如何在dynamodb中设置查询结果的限制

暨弘毅
2023-03-14

我有一个要求,在Dynamodb中查询表时只需要返回一行。我可以在aws cli中看到一个名为“max items”的参数,它显然限制了查询的结果大小。以下是示例查询:

aws dynamodb query --table-name testTable --key-condition-expression "CompositePartitionKey = :pk" 
--expression-attribute-values '{ ":pk": { "S": "1234_125" }, ":ps": { "S": "SOME_STATE" }
    }' 
--filter-expression 'StateAttribute IN (:ps) AND attribute_not_exists(AnotherAttribute)' 
--index-name GSI_PK_SK --endpoint-url http://localhost:8000    --max-items 1

但我无法在Go中找到任何类似的关键字/属性。

以下是我可以找到的相关内容:如何使用Java设置DynamoDB返回的匹配项的限制?

共有3个答案

厍华清
2023-03-14

您需要对DynamoDB的响应进行分页,直到满足“用户限制”。

盖嘉庆
2023-03-14

您可能需要查看分页。您可以使用页面大小来控制在每个查询中可以得到多少。

有关分页的更多详细信息,请参阅分页表查询结果。

谭梓
2023-03-14

正如您在DynamoDB对“查询”操作的官方描述中所看到的那样-https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html-您要查找的参数是“Limit”。请参考Go库的文档,了解如何准确地将此参数传递给查询。

顺便说一句,请注意Limit并没有完全限制返回结果的数量,而是限制在服务器端读取的行数。如果您的查询有过滤器,它返回的结果可能少于Limit结果。我不知道这对您是否重要。

 类似资料:
  • 问题内容: 我想知道是否可以限制SQL请求的结果? 例如,最多只返回以下内容的50行: 谢谢。 问题答案: 是的,这是可能的。这在数据库引擎之间有所不同。 Postgres: SQL Server: …

  • 问题内容: 我非常确定我们不能将LIMIT子句用于我想做的事情-因此想确定是否还有其他方法可以实现此目的。 我有一个表,其中捕获了哪个用户访问了哪个商店。每次用户访问商店时,都会在此表中插入一行。 一些领域是 shopping_id(primary key) store_id user_id 现在,我想要的是-对于给定的一组商店,找到访问该商店的最大次数的前5位用户。 我可以一次在1个商店中进行以

  • 我对DynamoDB上的查询/扫描限制有疑问。 我的表有1000条记录,对所有记录的查询都返回50个值,但是如果我把设为5,这并不意味着查询将返回前5个值,它只是说对5个项目的查询表(以任何顺序,所以它们可能是非常旧的项目或新的项目),所以我有可能在查询中得到0个项目。如何实际获得查询的最新5项?我需要设置一个为5(数字是例子),因为查询/扫描更多的项目会很昂贵。 该查询具有此输入 我的表的索引是

  • 如有任何帮助,不胜感激

  • 问题内容: 我有这样的HQL: 问题是它不理解关键字。有没有一种方法可以运行这样的查询而不将其分为两个子查询? 问题答案: 看一下如何在HQL中进行限价查询? 您不能用hql限制用hql编写的查询。您需要调用Query对象上的setMaxResults,我想这将阻止您对hql子查询施加限制。 这使您可以选择 将其编写为sql查询或 尝试寻找另一种编写hql查询的方法,以便您在子查询中不需要限制。

  • 我不了解DynamoDb中查询/扫描限制的概念。根据文件: 单个查询操作最多可以检索1 MB的数据。在对结果应用任何FilterExpression之前,此限制适用。 假设我有10k个条目,每个条目250kb,所有条目都符合查询参数。 如果我运行一个简单的查询,我只得到4个项目?