首页 > 解决方案 > 如何限制 AWS DynamoDB 扫描的项目数量?

问题描述

我正在使用 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

没有与“页面大小”相关的参数。

(仅Limit限制被扫描的项目数量,不返回)。

如何限制退回商品的数量(满足我的条件)?

标签: node.jsamazon-web-servicesamazon-dynamodb

解决方案


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 行,找到满足过滤器的行,然后返回它们”

我认为你需要一个索引:)


推荐阅读