Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Abfrage
Wichtig
Dieser Abschnitt bezieht sich auf die veraltete API-Version 2011-12-05, die nicht für neue Anwendungen verwendet werden sollte.
Eine Dokumentation zur aktuellen Low-Level-API finden Sie in der Amazon DynamoDB-API-Referenz.
Beschreibung
Eine Query
Operation ruft die Werte eines oder mehrerer Elemente und ihrer Attribute nach Primärschlüssel ab (Query
ist nur für hash-and-range Primärschlüsseltabellen verfügbar). Sie müssen einen spezifischen HashKeyValue
angeben und können den Umfang der Abfrage einschränken, indem Sie Vergleichsoperatoren auf den RangeKeyValue
des Primärschlüssels anwenden. Verwenden Sie den Parameter ScanIndexForward
, um Ergebnisse nach Bereichsschlüssel in vorwärts gerichteter oder umgekehrter Reihenfolge zu erhalten.
Abfragen, die keine Ergebnisse zurückgeben, verbrauchen die minimalen Lesekapazitätseinheiten entsprechend dem Lesetyp.
Anmerkung
Wenn die Gesamtanzahl der Elemente, die den Abfrageparametern entsprechen, das Limit von 1 MB überschreitet, wird die Abfrage beendet und die Ergebnisse werden an den Benutzer mit einem LastEvaluatedKey
zurückgegeben. Die Abfrage wird in einer nachfolgenden Operation fortgesetzt. Im Gegensatz zu einer Scan-Operation gibt eine Abfrage-Operation niemals einen leeren Ergebnissatz und einen LastEvaluatedKey
zurück. Der LastEvaluatedKey
wird nur bereitgestellt, wenn die Ergebnisse 1 MB überschreiten oder wenn Sie den Parameter Limit
verwendet haben.
Das Ergebnis kann für einen Consistent-Lesevorgang mit dem Parameter ConsistentRead
festgelegt werden.
Anforderungen
Syntax
// This header is abbreviated. // For a sample of a complete header, see DynamoDB auf niedriger Ebene API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Query content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Limit":2, "ConsistentRead":true, "HashKeyValue":{"S":"AttributeValue1":}, "RangeKeyCondition": {"AttributeValueList":[{"N":"AttributeValue2"}],"ComparisonOperator":"GT"} "ScanIndexForward":true, "ExclusiveStartKey":{ "HashKeyElement":{"S":"AttributeName1"}, "RangeKeyElement":{"N":"AttributeName2"} }, "AttributesToGet":["AttributeName1", "AttributeName2", "AttributeName3"]}, }
Name | Beschreibung | Erforderlich |
---|---|---|
TableName
|
Der Name der Tabelle, die die angeforderten Elemente enthält. Typ: Zeichenfolge |
Ja |
AttributesToGet
|
Array von Attributnamen. Wenn Attributnamen nicht angegeben sind, dann werden alle Attribute zurückgegeben. Wenn einige Attribute nicht gefunden werden, sind sie nicht im Abfrageergebnis enthalten. Typ: Array |
Nein |
Limit
|
Die maximale Anzahl der zurückzugebenden Elemente (nicht notwendigerweise die Anzahl der übereinstimmenden Elemente). Wenn DynamoDB bei der Abfrage der Tabelle die Anzahl der Elemente bis zum Limit verarbeitet, wird die Abfrage beendet und es werden die bis zu diesem Punkt übereinstimmenden Werte zurückgegeben. Außerdem wird ein Typ: Zahl |
Nein |
ConsistentRead
|
Wenn auf Typ: Boolesch |
Nein |
Count
|
Wenn auf Setzen Sie Typ: Boolesch |
Nein |
HashKeyValue
|
Attributwert der Hash-Komponente des zusammengesetzten Primärschlüssels. Typ: Zeichenfolge, Zahl oder Binärzahl |
Ja |
RangeKeyCondition
|
Ein Container für die Attributwerte und Vergleichsoperatoren für die Abfrage. Eine Abfrageanforderung erfordert keine Typ: Zuordnung |
Nein |
RangeKeyCondition :
AttributeValueList |
Die Attributwerte zur Bewertung der Abfrageparameter. Typ: Zuordnung von |
Nein |
RangeKeyCondition :
ComparisonOperator |
Die Kriterien für die Bewertung der bereitgestellten Attribute, z. B. gleich, größer als usw. Die folgenden Operatoren sind gültige Vergleichsoperatoren für eine Abfrage-Operation. AnmerkungVergleiche von Zeichenfolgenwerten für größer als, gleich oder kleiner als basieren auf ASCII-Zeichensatzwerten. Beispiel: Beim Binärtyp behandelt DynamoDB jedes Byte der Binärdaten als ohne Vorzeichen, wenn binäre Werte verglichen werden (z. B. bei der Bewertung von Abfrageausdrücken). Typ: Zeichenfolge oder Binärzahl |
Nein |
Bei |
||
Bei |
||
Bei |
||
Bei |
||
Bei |
||
Bei |
||
Für |
||
ScanIndexForward |
Gibt die auf- oder absteigende Traversierung des Index an. DynamoDB gibt Ergebnisse zurück, die der angeforderten Reihenfolge entsprechen, die vom Bereichsschlüssel bestimmt wird: Wenn der Datentyp „Zahl“ lautet, werden die Ergebnisse in numerischer Reihenfolge zurückgegeben, andernfalls basiert der Traversal auf ASCII-Zeichencodewerten. Typ: Boolesch Der Standardwert ist |
Nein |
ExclusiveStartKey |
Der Primärschlüssel des Elements, von dem eine frühere Abfrage fortgesetzt wird. Eine frühere Abfrage kann diesen Wert als Typ: |
Nein |
Antworten
Syntax
HTTP/1.1 200 x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 308 {"Count":2,"Items":[{ "AttributeName1":{"S":"AttributeValue1"}, "AttributeName2":{"N":"AttributeValue2"}, "AttributeName3":{"S":"AttributeValue3"} },{ "AttributeName1":{"S":"AttributeValue3"}, "AttributeName2":{"N":"AttributeValue4"}, "AttributeName3":{"S":"AttributeValue3"}, "AttributeName5":{"B":"dmFsdWU="} }], "LastEvaluatedKey":{"HashKeyElement":{"AttributeValue3":"S"}, "RangeKeyElement":{"AttributeValue4":"N"} }, "ConsumedCapacityUnits":1 }
Name | Beschreibung |
---|---|
Items
|
Elementattribute, die den Abfrageparametern entsprechen. Typ: Zuordnung der Attributnamen und ihrer Datentypen und Werte. |
Count
|
Anzahl der Elemente in der Antwort. Weitere Informationen finden Sie unter Zählen der Elemente in den Ergebnissen. Typ: Zahl |
LastEvaluatedKey |
Primärschlüssel des Elements, an dem die Abfrage-Operation beendet wurde, einschließlich des vorherigen Ergebnissatzes. Verwenden Sie diesen Wert, um eine neue Operation ohne diesen Wert in der neuen Anforderung zu starten. Der Typ: |
ConsumedCapacityUnits |
Die Anzahl der Lesekapazitätseinheiten, die von der Operation verbraucht werden. Dieser Wert zeigt die Anzahl, die für Ihren bereitgestellten Durchsatz gültig ist. Weitere Informationen finden Sie unter Bereitgestellter Kapazitätsmodus von DynamoDB. Typ: Zahl |
Spezielle Fehler
Fehler | Beschreibung |
---|---|
ResourceNotFoundException
|
Die angegebene Tabelle wurde nicht gefunden. |
Beispiele
Beispiele für die Verwendung des AWS SDK finden Sie unterAbfragen von Tabellen in DynamoDB.
Beispielanforderung
// This header is abbreviated. For a sample of a complete header, see DynamoDB auf niedriger Ebene API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Query content-type: application/x-amz-json-1.0 {"TableName":"1-hash-rangetable", "Limit":2, "HashKeyValue":{"S":"John"}, "ScanIndexForward":false, "ExclusiveStartKey":{ "HashKeyElement":{"S":"John"}, "RangeKeyElement":{"S":"The Matrix"} } }
Beispielantwort
HTTP/1.1 200 x-amzn-RequestId: 3647e778-71eb-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 308 {"Count":2,"Items":[{ "fans":{"SS":["Jody","Jake"]}, "name":{"S":"John"}, "rating":{"S":"***"}, "title":{"S":"The End"} },{ "fans":{"SS":["Jody","Jake"]}, "name":{"S":"John"}, "rating":{"S":"***"}, "title":{"S":"The Beatles"} }], "LastEvaluatedKey":{"HashKeyElement":{"S":"John"},"RangeKeyElement":{"S":"The Beatles"}}, "ConsumedCapacityUnits":1 }
Beispielanforderung
// This header is abbreviated. For a sample of a complete header, see DynamoDB auf niedriger Ebene API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Query content-type: application/x-amz-json-1.0 {"TableName":"1-hash-rangetable", "Limit":2, "HashKeyValue":{"S":"Airplane"}, "RangeKeyCondition":{"AttributeValueList":[{"N":"1980"}],"ComparisonOperator":"EQ"}, "ScanIndexForward":false}
Beispielantwort
HTTP/1.1 200 x-amzn-RequestId: 8b9ee1ad-774c-11e0-9172-d954e38f553a content-type: application/x-amz-json-1.0 content-length: 119 {"Count":1,"Items":[{ "fans":{"SS":["Dave","Aaron"]}, "name":{"S":"Airplane"}, "rating":{"S":"***"}, "year":{"N":"1980"} }], "ConsumedCapacityUnits":1 }