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

如何在begins_with组合中使用分页?

申屠泉
2023-03-14

当我的查询在一个表设计上使用“LastEvaluatedKey”进行分页时,如何利用“LastEvaluatedKey”进行分页?我的页面大小是Limit=100,有几千个项目,因此它将超过1MB的限制。

PK="Prefix#UID"("GBUID#d2pZ3XMA")

SK=“频道ID#日期#消息ID”(

我的上一个EvaluatedKey如下所示:

<代码>{'pfx':'GBUID',pk':'d2pZ3XMA',sk':'dfc8ad08-bfbe-45ef-8cf0-6a38a7d881bb#2021-10-30T01:14:52.997Z#714bdc31-5443-4489-a6f0-39bc9f838e3e}

我很难想象如何继续使用begins\u with检索所有UID以指定频道id开头的项目。

共有1个答案

易成双
2023-03-14

似乎可以通过一些技巧来完成。一旦您收到LastEvalatedKey值,您将切换档位以使用litgt查询。

ddb. table("table_name"). query(Key条件表达式=Key("pk"). eq(LEK["pk"])

(取决于您的ScanIndexForward(向前扫描)的方式,即True/False),然后使用某种形式的分页循环进行相应的查询。

您将需要过滤掉您不想要的密钥。幸运的是,由于Dynamodb通过UTF-8对所有内容进行排序,因此它将位于响应的末尾。

在我的例子中,当channel_id不再等于begins_with值(channel_id)时,我的循环将停止。

 类似资料:
  • 我试图在DynamoDB上使用DynamoDBMapper.batchLoad()对具有复合主键的表执行批处理获取操作,其中我知道HashKey值的集合,但不知道RangeKey值。关于RangeKey值仅信息我只知道它们以其开头的字符序列,例如如果序列表示“test”,那么RangeKey值将类似于“test1243”。为了解决这个问题,Dynamodb支持begins_withcaluse但在

  • 我有一个用例可以将begins_with应用于AWS Dynamodb表的主排序键, 我可以从AWS控制台使用begins_with键条件查询表, 我希望使用AWS Javascript SDK实现同样的功能。 我的表中有以下字段- 1。user_id(主分区键) 2。user_relation(主排序键) 我尝试了下面的代码- 错误- 引用- https://docs.aws.amazon.co

  • 我最近写了 这似乎很尴尬。我知道(以及其他一些包)定义了 但即便如此,这一切都感觉有点手动。有什么我没见过的收紧它的好模式吗?

  • 我希望能够在docker-compose.yml中使用env变量,这些变量的值是在时传入的。这就是例子。 我今天用基本的docker run命令来完成这个任务,它被包装在我自己的脚本中。有没有一种方法可以用compose来实现它,而不需要任何这样的bash包装器?

  • 我想执行一个进行基本分页的聚合查询: 查找属于某个 以下是查询的详细信息: 这将查找所有匹配的文档: 这对文档进行了排序: 这会对文档进行计数,并传递未修改的文档,但我肯定这样做是错误的,因为事情从这里开始变得很奇怪: 这似乎跳过了一些文档: 这本应限制文件,但却没有: 这会返回计数,但不会返回数组中的文档,而是返回每个字段的数组: 结果是: 我哪里弄错了?

  • 问题内容: 我正准备编写一个基于MPI的代码,以便使用python和MPI4py进行一些计算。但是,按照该示例,我无法将一个numpy向量散布到核心中。这是代码和错误,有人可以帮助我吗?谢谢。 错误结果是: 谢谢。 问题答案: 数据类型不正确。我应该指定数组的类型: