说我有照片和用户的表格。
鉴于我有一个用户列表,我跟随[user1,user2,...]
,我希望得到一个我正在关注的人的照片列表。
如何查询照片表where photo.createdBy in [user1,user2,user3...]
我看到dynamodb有一个批处理操作,但它需要一个主键,在这种情况下,我们将查询二级索引(createdBy)。
有没有办法在dynamodb中进行这样的查询?
答案 0 :(得分:0)
如果您纯粹在photo.createdBy
上查询,那么您应该创建一个global secondary index:
要加快对非关键属性的查询,您可以创建全局二级索引。全局二级索引包含表中的一系列属性,但它们由与表的主键不同的主键组织。索引键不需要具有表中的任何键属性;它甚至不需要与表格具有相同的密钥模式。
当然,这只会检索一个项目。要在退回更多项目时限制结果,请使用FilterExpression
:
使用“查询”或“扫描”操作,您可以提供可选过滤器表达式来优化返回给您的结果。过滤器表达式允许您在查询或扫描数据之后但在将数据返回给您之前应用条件。 仅返回符合条件的商品。
这可以应用于Filter
或Scan
,但在扫描匹配条目时请注意使用过多的读取容量单位。