【发布时间】:2019-11-09 00:28:14
【问题描述】:
正如标题所说,我想知道在 Amazon DynamoDB 中扫描表的最佳方法是通过 another 字段而不是主键进行搜索。
我对此进行了搜索并阅读了很多内容,但我找到了适合我的解决方案:
let DynamoDBServiceObj = new AWS.DynamoDB({apiVersion: '2012-08-10'});
let params = {
ExpressionAttributeValues: {
':hash' : { S: req.param('wildcard') }
},
ProjectionExpression: 'directory',
FilterExpression: 'qrCode = :hash',
TableName: 'business'
};
let business = await DynamoDBServiceObj.scan(params).promise();
if (business.Count == 1) return res.ok();
else return res.view('404');
这对我有用,但我也读到对表执行 scan 是个坏主意,对于性能和定价而言。但是,那该怎么做呢?
哪种扫描表的正确方法是按主键以外的another搜索?
DocumentClient和DynamoDB Object有什么区别?
我总是使用 .get() 在 DynamoDB 上获取我想要的内容。这是好还是坏 做法?
我阅读了这些帖子,我认为 GSI 是解决方案,但我不明白它是如何工作的。
【问题讨论】:
标签: node.js amazon-web-services amazon-dynamodb sails.js dynamodb-queries