从表中扫描多个电子邮件ID - DynamoDB
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从表中扫描多个电子邮件ID - DynamoDB相关的知识,希望对你有一定的参考价值。
我正在使用@awspilot/dynamodb
从客户表中获取数据,其中customer_id
是主键。
我需要根据多个customer_email
获取客户ID。
dynamodb
.table('bc_customer')
.select('customer_id')
.having('email').eq('test@gmail.com')
.scan(function( err, data ) {
console.log(data);
});
上面的代码允许我传递单个电子邮件ID,有没有办法搜索多个电子邮件ID?
答案
DynamoDB支持query,它允许您从一个且仅一个分区(即一个分区键)获取数据,或scan返回表中的每个项目(即全表扫描)。
如果您知道要查询的分区键,则执行多个查询并组合结果集会更快。如果您不关心性能或者您对速度感到满意(请记住,随着工作台的增长,扫描会缩小),您可以使用扫描。
请注意,上面您实际上正在进行扫描,因此您不使用分区键作为索引。
查询将是这样的:
DynamoDB
.table('bc_customer')
.where('email').eq('test@gmail.com')
.query(function(err, data ) {
console.log(err,data)
})
扫描(我认为 - awspilot documents不太清楚)应该是这样的:
DynamoDB
.table('bc_customer')
.having('email').eq('test@gmail.com')
.having('someattribute').eq('something')
.scan(function( err, data ) {
console.log( err, data )
})
以上是关于从表中扫描多个电子邮件ID - DynamoDB的主要内容,如果未能解决你的问题,请参考以下文章
DynamoDB:scan()与FilterExpression结合使用多个属性
AWS Lambda 测试不从 DynamoDB 表返回数据