0
私は 'aws-sdk'、 '〜> 2.6.44'を使用しています。私はactivities
テーブルを持っています。そこには、ユーザーが実行したすべてのアクティビティが保存されています。dynamodbの範囲キーの範囲を照会する方法は?
params = {
table_name: 'activities', # required
key_schema: [ # required
{
attribute_name: 'actor', # required User.1
key_type: 'HASH', # required, accepts HASH, RANGE
},
{
attribute_name: 'created_at', # timestamp
key_type: 'RANGE'
}
],....
私は過去1日に、ユーザによって実行されたすべての活動でこのテーブルを照会します。レンジキーの範囲であったオプションを使用してDynamoDBのテーブルを照会するための正しい方法はどうあるべきか
tableName = 'activities'
params = {
table_name: tableName,
key: {
actor: 'User.1'
},
filter_expression: "created_at BETWEEN (:id1, :id2)",
expression_attribute_values: { ":id1" => (Time.now - 1.days).to_i,":id2" => (Time.now + 1.days).to_i},
projection_expression: "actor"
}
DynamodbClient.client.get_item(params)
# Throws ArgumentError: no such member :filter_expression
:AWS documentation siteは、SDKのバージョン3.
tableName = 'activities'
params = {
table_name: tableName,
key_condition_expression: "#user = :actor and #time between :start_time and :end_time",
expression_attribute_names: {
"#user" => 'actor',
"#time" => "created_at"
},
expression_attribute_values: {
actor: 'User.1',
":start_time" => (Time.now - 1.days).to_i,
":end_time" => (Time.now + 1.days).to_i
}
}
DynamodbClient.client.get_item(params)
# Throws: ArgumentError: no such member :key_condition_expression
のマニュアルを持っているように見える私は、フィルタ式で試してみましたか?