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

使用FilterExpression(contains)的aws sdk dynamodb扫描操作将生成空项

太叔炎彬
2023-03-14

我正在尝试使用contains FilterExpression从AWS Dynamo DB scan获取数据。我正在使用以下参数,但收到的响应为空:

{“Items”:[],“Count”:0,“ScannedCount”:792,“LastEvaluatedKey”:{“ID”:“b123456789”}

我想根据数组中的字符串进行过滤,例如:orange from fruits:['orange','apple','banana'];

用于扫描操作的参数:

params={TableName:table,filtereexpression:“contains(faults,:L)”,expressionAttributeValue:{:L:{S:“orange”}}

但是当我使用相同的命令的AWS CLI。我得到以下格式的数据:

{“项目”:[{“水果”:{“L”:[{“S”:“橙色”}]}},{}]}

你能让我知道我使用的参数有什么问题吗?

共有1个答案

陆子石
2023-03-14

要了解这里发生了什么,您需要了解DynamoDB如何过滤数据和分页结果。它发生的顺序如下:

  1. 从表中读取项目
  2. 应用过滤器
  3. 返回结果

DynamoDBqueryscan操作一次最多返回1MB的数据。除此之外的任何内容都将分页。如果DynamoDB在响应中返回LastEvaluatedKey元素,您就知道您的结果正在分页。

滤波器在1MB限制后应用。这是经常让人措手不及的关键步骤。在您的情况下,发生了以下情况:

  1. 执行一个scan操作,从表中读取1MB的数据。

换句话说,筛选器没有应用于整个表。它一次应用于1MB的表。为了获得您要查找的结果,您需要重复执行scan操作,直到到达表的最后一个“页面”。

 类似资料:
  • 我是AWS DynamoDB的新手,阅读了留档后,我不能100%确定在SCAN操作中使用“限制”参数时成本计算会发生什么。 我知道应该设计表,以便主要使用查询操作,并且扫描将扫描整个表,从而消耗大量的读取容量。我还知道FilterExpression不会影响扫描整个表的成本,但会过滤整个扫描后返回的内容,如果扫描的项目总数超过1 MB的最大数据集大小限制,则会停止扫描并返回结果。 我不确定的是,“

  • 我如何建立一个方程来产生扫频正弦波。我是信号处理新手,在网上找不到太多关于生成扫描正弦波的话题。请告诉我一些我可以用来生成方程式并在代码中使用的源代码。非常感谢。

  • 我正在做,我把键作为 我想从中搜索, 也不起作用。请救命!!

  • 在 ZBarSDK(本站下载:http://code4app.com/ios/ZBar-Barcode-Reader/4fa23f3f06f6e7ee18000000)的基础上做的一个demo,能够将字符串转换成二维码,能够通过摄像头扫描二维码。代码里面有对如何使用 ZBarSDK 的详细说明。 [Code4App.com]

  • 利用ZXing类库实现二维码生成和扫描识别的功能。可以生成不同颜色的二维码,以及圆点和矩形点形状的二维码。 二维码扫描功能,能识别本地相册的二维码。由于作者没有做屏幕适配,所以二维码生成的功能只能在4.0inch屏幕进行测试。 [Code4App.com]

  • 本文向大家介绍iOS二维码的生成和扫描,包括了iOS二维码的生成和扫描的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 属性 二维码的生成  * createNonInterpolatedUIImageFormCIImage:outputImage方法的实现  二维码的扫描  *扫描到结果后会调用的方法 以上就是本文的全