私は@awspilot/dynamodb
を使用して、customer_id
が主キーである顧客テーブルからデータを取得しています。テーブルから複数の電子メールIDを検索する - DynamoDB
customer_email
に基づいて得意先IDを取得する必要があります。
上記のコードは、1つのメールIDを渡すことができますが、複数のメールIDで検索する方法はありますか?
私は@awspilot/dynamodb
を使用して、customer_id
が主キーである顧客テーブルからデータを取得しています。テーブルから複数の電子メールIDを検索する - DynamoDB
customer_email
に基づいて得意先IDを取得する必要があります。
上記のコードは、1つのメールIDを渡すことができますが、複数のメールIDで検索する方法はありますか?
DynamoDBは、1つのパーティション(つまり1つのパーティションキー)からデータを取得できるqueryをサポートしています。つまり、テーブル内のすべての項目(つまりフルテーブルスキャン)を返すscanです。
クエリするパーティションキーが分かっている場合は、複数のクエリを実行して結果セットを結合する方が速くなります。あなたがパフォーマンスを気にしない、またはあなたがスピードに満足しているなら(あなたのテーブルが成長するにつれてスキャンのスケールが悪くなることに気をつけてください)、あなたはスキャンを使うことができます。
実際にスキャンを実行しているため、パーティションキーをインデックスとして使用していないことに注意してください。
クエリは次のようになります:
DynamoDB
.table('bc_customer')
.where('email').eq('[email protected]')
.query(function(err, data) {
console.log(err,data)
})
、スキャン(私は思う - awspilot documentsがあまりにも明確ではない)のようなものでなければなりません:
DynamoDB
.table('bc_customer')
.having('email').eq('[email protected]')
.having('someattribute').eq('something')
.scan(function(err, data) {
console.log(err, data)
})