我想基于一些过滤器从dynamodb表中检索项目列表。在“筛选器”中,我有我的哈希键列表(应该返回具有该哈希键之一的记录),并且记录上还有其他几个过滤器,例如,“状态”字段的值为“已批准”。因此,如果该项目具有我列表中的哈希键,并且状态字段的值“已批准”,则应将其返回。
我怎样才能做到这一点 ?
我无法使用QUERY,因为根据我的理解,它仅期望1个哈希键值。
我不能使用BatchGet,因为它不接受过滤器表达式。
最佳答案
您可以使用BatchGet
来获取项目,并通过自己的功能对其进行过滤。
Doc: Working with Query
查询操作最多可以检索1 MB的数据。此限制在计算过滤器表达式之前适用。
如您所见,使用过滤器表达式无法帮助您检索更多数据,这也无法节省您的读取容量(金额)。因此,我认为在本地或服务器端进行过滤没有区别。
如果希望dynamo为您完成繁重的工作,为您过滤数据,则可以尝试使用"multi-query"
而不是BatchGet
。
这是一些相关的参考资料,What's the difference between BatchGetItem and Query in DynamoDB?