0
我已经在Google上搜索了一段时间,但没有得到具体的答案。使用DynamoDB映射器进行多键查询
比方说,我有一个存储人员信息的表,它使用PeopleId作为散列键。有没有办法构建一个查询来返回人员,如果他的Id是1或2?
看起来我可以使用BatchGetItem来做这样的事情,但它会有更高的延迟?
我已经在Google上搜索了一段时间,但没有得到具体的答案。使用DynamoDB映射器进行多键查询
比方说,我有一个存储人员信息的表,它使用PeopleId作为散列键。有没有办法构建一个查询来返回人员,如果他的Id是1或2?
看起来我可以使用BatchGetItem来做这样的事情,但它会有更高的延迟?
您不能在DynamoDB中拥有主键的分区键部分的任何条件。你可以在排序键上。
因此,您要么必须执行两次GetItem,要么使用BatchGetItem。
谢谢!我只是发现有一个方法expression.withFilterExpression(“id = x或id = y”),但不知道这是否可以减少延迟.http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper .Methods.html#d0e31877 – user3910794
筛选器表达式不能应用于分区键,只能应用于排序键。对于DynamoDB查询,您必须拥有精确的分区键,并且不能有任何条件。 –
嗨,尼克,我发现filterExpression适用于每一个属性,但它发生在从dynamoDB得到结果并且返回结果给客户端之前。您提到的条件适用于排序键和散列键,并有助于缩短延迟时间。谢谢! – user3910794