2016-05-16 52 views
1

感谢您花时间阅读我的问题。Dynamodb我可以用两个GSI查询吗?

我的场景是这样的。我在dynamodb中有一个geopoints表。

它包括:
OBJECT_TYPE(字符串HASH)
ID(字符串范围)
LAT(编号GSI RANGE)
LNG(编号GSI RANGE)

它的指标:
OBJECT_TYPE -lat指数(OBJECT_TYPE哈希纬度范围)
OBJECT_TYPE-LNG指数(OBJECT_TYPE哈希LNG范围)

我想要做什么:
IndexName: "object_type-lat-index", KeyConditionExpression: "object_type=:otype AND (lat BETWEEN :llat AND :glat) AND (lng BETWEEN :llng AND :glng)", 我希望能够通过得到至少纬度和更高的纬度,和至少液化天然气和液化天然气更大的中间人来查询纬度和经度

我似乎无法找到它在dynamodb文档。这可以做到还是我正确实施?因为错误恢复像“只能有1个或2个条件”

回答

2

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html#GSI.Querying

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html

它的工作方式是查询工作对表本身(在表中定义的键)或GSI。您不能在同一个查询中合并多个GSI和表HK。

2选择这里:
1)执行针对2个索引2次的查询和相交在客户端上的结果
2)做一对的指标之一1个查询瓦特/过滤器表达式,与其它表达工作(所以基本上,例如:在一个过滤器的长期查询纬度)。

+0

谢谢!我正在做选项2 – taptipblard

+0

是否会按预期的方式降低读取吞吐量大小?我试图问的是,结果的大小(RTU的消耗)是应用过滤器后还是应用过滤器之前的结果? – Sudip

相关问题