![](/img/trans.png)
[英]How to fetch/scan all items from `AWS dynamodb` using node.js
[英]How to limit the number of items from an AWS DynamoDB scan?
我正在使用 node.js。
如果你看这个例子:
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html
它说:
aws dynamodb scan \
--table-name Movies \
--projection-expression "title" \
--filter-expression 'contains(info.genres,:gen)' \
--expression-attribute-values '{":gen":{"S":"Sci-Fi"}}' \
--page-size 100 \
--debug
其中page-size
限制结果项的数量:
通常,AWS CLI 会自动处理分页; 但是,在此示例中,CLI 的 --page-size 参数限制了每页的项目数。
但是,如果您阅读 Node.js AWS 文档:
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#scan-property
没有与“页面大小”相关的参数。
( Only Limit
限制扫描的项目数量,不返回)。
如何限制退回商品的数量(满足我的条件)?
aws dynamodb scan \
--table-name Movies \
--projection-expression "title" \
--filter-expression 'contains(info.genres,:gen)' \
--expression-attribute-values '{":gen":{"S":"Sci-Fi"}}' \
--page-size 100 \
--debug
你认为这会做什么:“读取整个表,找到满足过滤器的行,然后返回最多 100 个”
Dynamo 做什么:“读取 100 行,找到满足过滤器的行,并返回它们”
我认为你需要一个索引:)
您似乎误读了文档,
限制结果集中的项目数
扫描操作使您可以限制返回结果中的项目数。 为此,请将Limit参数设置为所需的最大项目数。
例如,假设您扫描一个限制值为6且没有过滤器表达式的表。 扫描结果将包含表中与请求的关键条件表达式匹配的前六个项目。
现在,假设您向“扫描”添加了一个过滤器表达式。 在这种情况下,DynamoDB会将过滤器表达式应用于返回的六个项目,并丢弃不匹配的项目。 最终的扫描结果将包含6个或更少的项目,具体取决于过滤的项目数。
在同一链接上
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.