我在nodejs程序中使用AWS.DynamoDB.DocumentClient从多个Dynamodb表中获取项。为了简化代码,我选择使用BatchGetItem/BatchGet方法。
面临的挑战是,我需要基于全局辅助索引(例如name+age )来获取条目,而不是在创建表时生成的初始主键。我通过了BatchGetItem/BatchGet,但没有看到使用全局二级索引的任何参数。
我用下面的代码运行了一些测试
var params ={ RequestItems:{ 'Table-1':{ Keys:{ name:'abc',年龄: 18,} };var docClient =新的AWS.DynamoDB.DocumentClient();docClient.batchGet(params,function(err,data) ){ if (err) console.log(err);
并得到了跟踪错误。
> ValidationException: The provided key element does not match the
> schema
这是否意味着BatchGetItem/BatchGet不能使用全局二级索引,而我必须逐个从表中读取?
发布于 2020-08-15 18:32:04
我想不行。你可能需要一个接一个地查询。
索引-响应包括操作的聚合ConsumedCapacity,以及被访问的每个表和辅助索引的ConsumedCapacity。注意,某些操作(如GetItem和BatchGetItem )根本不访问任何索引。在这些情况下,指定索引只会返回表的ConsumedCapacity信息。
来源:https://docs.aws.amazon.com/cli/latest/reference/dynamodb/batch-get-item.html
https://stackoverflow.com/questions/47503951
复制相似问题