Amazon dynamodb dynamodb是否支持类似于“;在;子句在其查询中?

Amazon dynamodb dynamodb是否支持类似于“;在;子句在其查询中?,amazon-dynamodb,Amazon Dynamodb,假设我有一张照片和用户表 如果我有一个我正在跟踪的用户列表,我想得到一个我正在跟踪的人的照片列表 如何在[user1、user2、user3…]中查询照片表where photo.createdBy 我看到dynamodb有一个批处理操作,但它需要一个主键,在本例中,我们将根据一个辅助索引(createdBy)进行查询 在dynamodb中有这样的查询方法吗?如果您纯粹是在photo.createdBy上查询,那么您应该创建一个: 要加快对非关键属性的查询,可以创建一个全局二级索引。全局二级索引

假设我有一张照片和用户表

如果我有一个我正在跟踪的用户列表,我想得到一个我正在跟踪的人的照片列表

如何在[user1、user2、user3…]中查询照片表
where photo.createdBy

我看到dynamodb有一个批处理操作,但它需要一个主键,在本例中,我们将根据一个辅助索引(createdBy)进行查询


在dynamodb中有这样的查询方法吗?

如果您纯粹是在
photo.createdBy
上查询,那么您应该创建一个:

要加快对非关键属性的查询,可以创建一个全局二级索引。全局二级索引包含从表中选择的属性,但它们由不同于表的主键组织。索引键不需要具有表中的任何键属性;它甚至不需要与表具有相同的键模式

当然,这将只检索一个项目。要限制返回更多项目时的结果,请使用:

通过查询或扫描操作,您可以提供一个可选筛选表达式来优化返回给您的结果。筛选器表达式允许您在查询或扫描数据后,但在将其返回给您之前,对数据应用条件仅返回符合您条件的项目。


这可以应用于
过滤器
扫描
,但在扫描匹配条目时,请小心使用过多的读取容量单位。

这是否支持使用in子句进行查询?我只看到一些文档说明可以使用equal或其他运算符,但在子句中没有数组。您可以在筛选器表达式中使用in运算符,这意味着在这种情况下,您需要扫描表并通过[user1,user2,user3]中的photo.createdBy进行筛选。因此,基本上是对表进行完整扫描以查找3个值。如果我理解正确的话,OP问题的答案是“不,您不能在dynamodb中有效地使用IN查询”?