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
Mit dem Query
Anforderungszuordnungsdokument können Sie den AWS AppSync DynamoDB-Resolver anweisen, eine Query
Anfrage an DynamoDB zu stellen, und Sie können Folgendes angeben:
-
Schlüsselausdruck
-
Welcher Index verwendet werden soll
-
Jeder zusätzliche Filter
-
Wie viele Elemente zurückgegeben werden sollen
-
Ob Consistent-Lesevorgänge verwendet werden sollen
-
Abfragerichtung (vorwärts oder rückwärts)
-
Paginierungs-Token
Das Query
-Zuweisungsdokument weist die folgende Struktur auf:
{ "version" : "2017-02-28", "operation" : "Query", "query" : { "expression" : "some expression", "expressionNames" : { "#foo" : "foo" }, "expressionValues" : { ":bar" : ... typed value } }, "index" : "fooIndex", "nextToken" : "a pagination token", "limit" : 10, "scanIndexForward" : true, "consistentRead" : false, "select" : "ALL_ATTRIBUTES" | "ALL_PROJECTED_ATTRIBUTES" | "SPECIFIC_ATTRIBUTES", "filter" : { ... }, "projection" : { ... } }
Die Felder sind wie folgt definiert:
Felder abfragen
-
version
-
Die Version der Vorlagedefinition. Aktuell werden
2017-02-28
und2018-05-29
unterstützt. Dieser Wert ist erforderlich. -
operation
-
Der DynamoDB DynamoDB-Vorgang. Um die
Query
-DynamoDB-Operation durchzuführen, muss diese aufQuery
gesetzt sein. Dieser Wert ist erforderlich. -
query
-
query
In diesem Abschnitt können Sie einen Schlüsselbedingungsausdruck angeben, der beschreibt, welche Elemente aus DynamoDB abgerufen werden sollen. Weitere Informationen zum Schreiben von Ausdrücken für Schlüsselbedingungen finden Sie in der DynamoDB-Dokumentation KeyConditions . Dieser Abschnitt muss angegeben werden.-
expression
-
Der Abfrageausdruck. Dieses Feld muss angegeben werden.
-
expressionNames
-
Die Ersetzungen für Platzhalter der Namen von Ausdrucksattributen in Form von Schlüssel-Wert-Paaren. Der Schlüssel entspricht einem Namensplatzhalter
expression
, der in der verwendet wird, und der Wert muss eine Zeichenfolge sein, die dem Attributnamen des Elements in DynamoDB entspricht. Dieses Feld ist optional und sollte nur mit Ersetzungen für Platzhalter der Namen von Ausdrucksattributen gefüllt sein, die imexpression
verwendet werden. -
expressionValues
-
Die Ersetzungen für Platzhalter der Werte von Ausdrucksattributen in Form von Schlüssel-Wert-Paaren. Der Schlüssel entspricht einem Wertplatzhalter, der im
expression
verwendet wird, und der Wert muss ein typisierter Wert sein. Weitere Informationen zur Angabe eines „typisierten Werts“ finden Sie unter Typsystem (Anforderungszuordnung). Dieser Wert ist erforderlich. Dieses Feld ist optional und sollte nur mit Ersetzungen für Platzhalter der Werte von Ausdrucksattributen gefüllt sein, die imexpression
verwendet werden.
-
-
filter
-
Ein zusätzlicher Filter, der für das Filtern der Ergebnisse von DynamoDB verwendet werden kann, bevor sie zurückgegeben werden. Weitere Informationen zu Filtern finden Sie unter Filter. Dies ist ein optionales Feld.
-
index
-
Der Name des abzufragenden Indexes. Der DynamoDB-Abfragevorgang ermöglicht es Ihnen, zusätzlich zum Primärschlüsselindex auch lokale sekundäre Indizes und globale sekundäre Indizes nach einem Hashschlüssel zu durchsuchen. Falls angegeben, weist dies DynamoDB an, den angegebenen Index abzufragen. Wenn nicht angegeben, wird der Primärschlüsselindex abgefragt.
-
nextToken
-
Das Paginierungs-Token für die Fortsetzung einer früheren Abfrage. Dieses wäre von einer vorherigen Abfrage erhalten worden. Dies ist ein optionales Feld.
-
limit
-
Die maximale Anzahl der auszuwertenden Elemente (nicht notwendigerweise die Anzahl der übereinstimmenden Elemente). Dies ist ein optionales Feld.
-
scanIndexForward
-
Ein boolescher Wert, der angibt, ob vorwärts oder rückwärts abgefragt werden soll. Dieses Feld ist optional und standardmäßig auf
true
gesetzt. -
consistentRead
-
Ein boolescher Wert, der angibt, ob bei der Abfrage von DynamoDB konsistente Lesevorgänge verwendet werden sollen. Dieses Feld ist optional und standardmäßig auf
false
gesetzt. -
select
-
Standardmäßig gibt der AWS AppSync DynamoDB-Resolver nur Attribute zurück, die in den Index projiziert werden. Wenn weitere Attribute erforderlich sind, kann dieses Feld festgelegt werden. Dies ist ein optionales Feld. Die unterstützten Werte sind:
-
ALL_ATTRIBUTES
-
Gibt alle Elementattribute aus der angegebenen Tabelle oder dem Index zurück. Wenn Sie einen lokalen sekundären Index abfragen, ruft DynamoDB für jedes übereinstimmende Element im Index das gesamte Element aus der übergeordneten Tabelle ab. Wenn der Index konfiguriert ist, um alle Elementattribute zu projizieren, können Sie alle Daten aus dem lokalen sekundären Index erhalten und das Abrufen ist nicht erforderlich.
-
ALL_PROJECTED_ATTRIBUTES
-
Nur bei der Abfrage eines Indexes erlaubt. Ruft alle Attribute ab, die in den Index projiziert wurden. Wenn der Index konfiguriert ist, um alle Attribute zu projizieren, entspricht dieser Rückgabewert der Angabe von
ALL_ATTRIBUTES
. SPECIFIC_ATTRIBUTES
-
Gibt nur die in den s aufgeführten Attribute zurück.
projection
expression
Dieser Rückgabewert entspricht der Angabeprojection
von 's'expression
ohne Angabe eines Werts fürSelect
.
-
projection
-
Eine Projektion, die verwendet wird, um die Attribute anzugeben, die von der DynamoDB-Operation zurückgegeben werden sollen. Weitere Informationen zu Projektionen finden Sie unter Projektionen. Dies ist ein optionales Feld.
Die Ergebnisse von DynamoDB werden automatisch in GraphQL und JSON primitive Typen konvertiert und sind im Mapping-Kontext () verfügbar. $context.result
Weitere Informationen zur DynamoDB-Typkonvertierung finden Sie unter Typsystem (Antwortzuordnung).
Weitere Informationen zu Vorlagen für die Antwortzuweisung finden Sie unter Übersicht über Resolver-Mapping-Vorlagen.
Die Ergebnisse weisen die folgende Struktur auf:
{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10 }
Die Felder sind wie folgt definiert:
-
items
-
Eine Liste mit den von der DynamoDB-Abfrage zurückgegebenen Elementen.
-
nextToken
-
Wenn es mehr Ergebnisse geben könnte, enthält
nextToken
ein Paginierungs-Token, das in einer anderen Anfrage verwendet werden kann. Beachten Sie, dass das von DynamoDB zurückgegebene Paginierungstoken AWS AppSync verschlüsselt und verschleiert wird. Damit sickern Daten aus Ihren Tabellen nicht versehentlich an den Aufrufer durch. Beachten Sie auch, dass diese Paginierungs-Token nicht über verschiedene Resolver verwendet werden können. -
scannedCount
-
Die Anzahl der Elemente, die mit dem Abfragebedingungsausdruck übereinstimmten, bevor ein Filterausdruck (falls vorhanden) angewendet wurde.
Beispiel
Das folgende Beispiel ist eine Mapping-Vorlage für eine GraphQL-AbfragegetPosts(owner:
ID!)
.
In diesem Beispiel wird ein globaler sekundärer Index in einer Tabelle abgefragt, um alle Beiträge im Besitz der angegebenen ID zurückzugeben.
{ "version" : "2017-02-28", "operation" : "Query", "query" : { "expression" : "ownerId = :ownerId", "expressionValues" : { ":ownerId" : $util.dynamodb.toDynamoDBJson($context.arguments.owner) } }, "index" : "owner-index" }
Weitere Informationen zu DynamoDB finden Sie in der Query
API APIDynamoDB-Dokumentation.