webentwicklung-frage-antwort-db.com.de

wie man Elemente in einem dynamodb auf aws-cli zurückgibt

Ich habe also eine DynamoDB-Tabelle Benutzer und möchte den gesamten Inhalt dieser Tabelle zurückgeben. oder vielleicht sogar einige. 

Ich habe es versucht

aws dynamodb query --table-name Users 

und es heißt, ich muss Schlüsselbedingung oder Schlüsselbedingungsausdruck angeben, also habe ich Folgendes hinzugefügt:

aws dynamodb query --table-name Users --key-condition-expression Username = "test"

und gibt eine Fehlermeldung "Unbekannte Optionen: Test" zurück

15
Bennjoe Mordeno

Wenn Sie die gesamte Tabelle sichern möchten, verwenden Sie einfach

aws dynamodb scan --table-name Users
23
ataylor

Versuchen Sie dieses Format:

aws dynamodb get-item --table-name Users --key '{"Username": {"S": "test"}}'
15
Akavall

Nach meinem Verständnis übergeben Sie "key" (Hash oder Hash/Range) nicht richtig

erstellen Sie eine Datei mit Ihren Schlüsseln: test.json

{
    "userName": {"S": "abc"},
    "anyRangeKey": {"S": "xyz"}  //optional
}

Lauf

aws dynamodb get-item --table-name users --key file://test.json

refer: http://docs.aws.Amazon.com/cli/latest/reference/dynamodb/get-item.html
Hoffentlich hilft das

1
Harshal Bulsara
aws dynamodb get-item --table-name ProductCatalog --key "{""Id"":{""N"":""205""}}" --no-verify-ssl
0

Da es sich bei der Frage um die Verwendung der query -Operation handelt, geht es hier weiter.

Wie in der AWS cli-Dokumentation erläutert, sollten Sie die Attributwerte von der Bedingung trennen, indem Sie --expression-atribute-values Parameter:

aws dynamodb query --table-name Users 
    --key-condition-expression "Username = :v1" 
    --expression-attribute-values "{ \":v1\" : { \"S\" : \"test\" } }"

Darüber hinaus können Sie weitere Attribute im Filter kombinieren (in meinem Fall habe ich einen Datetime-Sortierschlüssel, nach dem ich filtern möchte):

aws dynamodb query 
  --table-name Users
  --key-condition-expression "Username = :v1 AND #Datetime BETWEEN :v2 AND :v3" 
  --expression-attribute-names "{ \"#Datetime\": \"Datetime\" }" 
  --expression-attribute-values "{ \":v1\" : { \"S\" : \"test\" }, \":v2\" : { \"S\" : \"2019-06-06\" }, \":v3\" : { \"S\" : \"2019-06-07\" }

} "

Hier das #Datetime Zuordnung erfolgt über die --expression-attribute-names Parameter, da Datetime ein reserviertes Schlüsselwort ist, kann ich es nicht innerhalb des Schlüsselbedingungsausdrucks verwenden.

0
SebaGra