ich das Juwel bin mit aws-sdk-ruby eine Tabelle abzufragen, die etwa wie folgt aussieht:DynamoDB: Abfragen Tabellen mit Sekundärindex
hk (Hashkey) | guid(Rangekey) | Timestamp (Secondary Range index) | other attributes
aaaa | 50 | 2013-02-04T12:33:00Z |
aaaa | 244 | 2013-04-22T04:54:00Z |
aaaa | 342 | 2013-05-18T06:52:00Z |
bbbb | 243 | 2013-06-21T13:17:00Z |
Was ich zu tun versuchen, alle ist get ‚AAAA‘ Zeilen, die nach erstellt wurden ein bestimmtes Datum. Ex:
AWS.config(access_key_id: 'xxx', secret_access_key: 'xxx', :dynamo_db => { :api_version => '2012-08-10' })
client = AWS::DynamoDB::Client.new
client.query(
{
table_name: 'table',
select: 'ALL_ATTRIBUTES',
key_conditions: {
'hk' => {
comparison_operator: 'EQ',
attribute_value_list: [
{'s' => 'aaaa'}
]
},
'timestamp' => {
comparison_operator: 'GE',
attribute_value_list: [
{'s' => Time.now.utc.iso8601}
]
}
}
})
Wenn ich führen Sie den Code oben i folgt erhalten:
Query condition missed key schema element guid (AWS::DynamoDB::Errors::ValidationException)
Ausführen der Abfrage mit HashKey und RangeKey funktioniert, aber wenn ich die rangeKey mit einem sekundären Bereich Index ersetzen versagt es mir zu sagen, dass der rangeKey erforderlich ist.
Wenn ich den Bereich Taste fügen Sie dann (was keinen Sinn macht) i stattdessen die folgende Fehlermeldung erhalten:
Conditions can be of length 1 or 2 only (AWS::DynamoDB::Errors::ValidationException)
Wer weiß, was passiert sein könnte?
Bitte beziehen Sie sich auf diesen Beitrag http://stackoverflow.com/questions/21515765/retrieve-all-items-from-dynamodb-using-query –