

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Requête
<a name="API_Query_v20111205"></a>

**Important**  
***Cette section fait référence à l'API version 2011-12-05 qui est obsolète et ne doit pas être utilisée pour de nouvelles applications.***  
 **Pour une documentation sur l'API de bas niveau actuelle, consultez la [Référence d'API Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/).**

## Description
<a name="API_Query_Description"></a>

Une opération `Query` obtient les valeurs d'un ou de plusieurs éléments et de leurs attributs par clé primaire (`Query` n'est disponible que pour des tables de clés primaires de hachage et de plage). Vous devez indiquer une `HashKeyValue` spécifique, et pouvez restreindre la portée de la requête à l'aide d'opérateurs de comparaison sur la `RangeKeyValue` de la clé primaire. Utilisez le paramètre `ScanIndexForward` pour obtenir les résultats dans l'ordre croissant ou inverse par clé de plage. 

Les requêtes qui ne renvoient pas de résultat consomment les unités de capacité de lecture minimum en fonction du type de lecture.

**Note**  
Si le nombre total d'éléments correspondant aux paramètres de requête dépasse la limite de 1 Mo, la requête s'arrête et les résultats sont renvoyés à l'utilisateur avec une `LastEvaluatedKey` pour continuer la requête dans une opération subséquente. Contrairement à une opération d'analyse, une opération de requête ne renvoie jamais un ensemble de résultats vide *et* une valeur `LastEvaluatedKey`. La valeur `LastEvaluatedKey` n'est fournie que si les résultats dépassent 1 Mo ou si vous avez utilisé le paramètre `Limit`.   
Le résultat peut être défini pour une lecture cohérente à l'aide du paramètre `ConsistentRead`.

## Requêtes
<a name="API_Query_RequestParameters"></a>

### Syntaxe
<a name="API_Query_RequestParameters.syntax"></a>

```
// This header is abbreviated.
// For a sample of a complete header, see API de bas niveau de DynamoDB.
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 (Nom)  |  Description  |  Obligatoire | 
| --- | --- | --- | 
|  TableName  |  Nom de la table contenant les éléments demandés.  Type : String  |  Oui  | 
| AttributesToGet  | Tableau de noms d'attribut. Si des noms d'attribut ne sont pas spécifiés, tous les attributs sont renvoyés. Si certains attributs ne sont pas trouvés, ils n'apparaissent pas dans le résultat.Type : Array | Non | 
| Limit  | Nombre maximum d'éléments à renvoyer (pas nécessairement le nombre d'éléments correspondants). Si DynamoDB traite le nombre d'éléments jusqu'à la limite lors de l'interrogation de la table, il arrête la requête et renvoie les valeurs correspondantes jusqu'à ce point, ainsi qu'une valeur `LastEvaluatedKey` à appliquer dans une opération subséquente pour continuer la requête. Par ailleurs, si la taille de l'ensemble de résultats dépasse 1 Mo avant que DynamoDB atteigne cette limite, DynamoDB arrête la requête et renvoie les valeurs correspondantes, ainsi qu'une valeur `LastEvaluatedKey` à appliquer dans une opération subséquente pour continuer la requête.Type : nombre | Non | 
| ConsistentRead  | Si la valeur est définie sur `true`, une lecture cohérente est effectuée. Sinon une cohérence éventuelle est utilisée.Type : booléen | Non | 
| Count  | Si la valeur est définie sur `true`, DynamoDB renvoie un nombre total d'éléments qui correspondent aux paramètres de requête, au lieu d'une liste des éléments correspondants et de leurs attributs. Vous pouvez appliquer le paramètre `Limit` aux requêtes de nombre uniquement.  Ne pas définissez pas la valeur `Count` sur `true` tout en fournissant une liste `AttributesToGet`. Sinon, DynamoDB renvoie une erreur de validation. Pour de plus amples informations, consultez [Comptabilisation des éléments dans les résultats](Query.Other.md#Query.Count).Type : booléen | Non | 
| HashKeyValue  | Valeur d'attribut du composant de hachage de la clé primaire composite.Type : chaîne, nombre ou binaire | Oui | 
| RangeKeyCondition  | Conteneur pour les valeurs d'attribut et les opérateurs de comparaison à utiliser pour la requête. Une demande de requête ne nécessite pas de `RangeKeyCondition`. Si vous fournissez uniquement la valeur `HashKeyValue`, DynamoDB renvoie tous les éléments avec la valeur d'élément de clé de hachage spécifiée.Type : carte | Non | 
| RangeKeyCondition:​ AttributeValueList | Valeurs d'attribut à évaluer pour les paramètres de requête. La `AttributeValueList` contient une valeur d'attribut, sauf si une comparaison `BETWEEN` est spécifiée. Pour la comparaison `BETWEEN`, la `AttributeValueList` contient deux valeurs d'attribut. Type : mappage de `AttributeValue` à un `ComparisonOperator`.  | Non | 
| RangeKeyCondition:​ ComparisonOperator |  Critères d'évaluation des attributs fournis, tels que Egal à, Supérieur à, etc. Les opérateurs de comparaison valides pour une opération de requête sont les suivants.  Les comparaisons de valeurs de chaîne pour les critères Supérieur à, Egal à ou Inférieur à sont basées sur des valeurs de code de caractère ASCII. Par exemple, `a` est supérieur à `A`, et `aa` est supérieur à `B`. Pour obtenir la liste des valeurs des codes, consultez [http://fr.wikipedia.org/wiki/American\$1Standard\$1Code\$1for\$1Information\$1Interchange](http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).  Pour une valeur binaire, DynamoDB traite chaque octet des données binaires comme non signé quand il compare des valeurs binaires, par exemple, lors de l'évaluation d'expressions de requête.   Type : chaîne ou binaire  | Non | 
|   | `EQ` : égal. Pour `EQ`, `AttributeValueList` ne peut contenir qu'une seule `AttributeValue` de type Chaîne, Nombre ou Binaire (et non Ensemble). Si un élément contient une `AttributeValue` d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple, `{"S":"6"}` n'est pas égal à `{"N":"6"}`. De même, `{"N":"6"}` n'est pas égal à `{"NS":["6", "2", "1"]}`. |   | 
|   | `LE` : inférieur ou égal. Pour `LE`, `AttributeValueList` ne peut contenir qu'une seule `AttributeValue` de type Chaîne, Nombre ou Binaire (et non Ensemble). Si un élément contient une `AttributeValue` d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple, `{"S":"6"}` n'est pas égal à `{"N":"6"}`. De même, `{"N":"6"}` n'est pas comparable à `{"NS":["6", "2", "1"]}`. |   | 
|   | `LT` : inférieur. Pour `LT`, `AttributeValueList` ne peut contenir qu'une seule `AttributeValue` de type Chaîne, Nombre ou Binaire (et non Ensemble). Si un élément contient une `AttributeValue` d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple, `{"S":"6"}` n'est pas égal à `{"N":"6"}`. De même, `{"N":"6"}` ne se compare pas à `{"NS":["6", "2", "1"]}`. |   | 
|   | `GE` : supérieur ou égal. Pour `GE`, `AttributeValueList` ne peut contenir qu'une seule `AttributeValue` de type Chaîne, Nombre ou Binaire (et non Ensemble). Si un élément contient une `AttributeValue` d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple, `{"S":"6"}` n'est pas égal à `{"N":"6"}`. De même, `{"N":"6"}` ne se compare pas à `{"NS":["6", "2", "1"]}`. |   | 
|   | `GT` : supérieur. Pour `GT`, `AttributeValueList` ne peut contenir qu'une seule `AttributeValue` de type Chaîne, Nombre ou Binaire (et non Ensemble). Si un élément contient une `AttributeValue` d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple, `{"S":"6"}` n'est pas égal à `{"N":"6"}`. De même, `{"N":"6"}` n'est pas comparable à `{"NS":["6", "2", "1"]}`. |   | 
|   | `BEGINS_WITH` : recherche un préfixe. Pour `BEGINS_WITH`, `AttributeValueList` ne peut contenir qu'une seule `AttributeValue` de type chaîne ou binaire (pas nombre ou ensemble). L'attribut cible de la comparaison doit être une chaîne ou un binaire (pas un nombre ou un ensemble). |   | 
|   | `BETWEEN` : supérieur ou égal à la première valeur, et inférieur ou égal à la deuxième valeur. Pour `BETWEEN`, `AttributeValueList` doit inclure deux éléments `AttributeValue` du même type, Chaîne, Nombre ou Binaire (et non Ensemble). Un attribut cible correspond si la valeur cible est supérieure ou égale au premier élément, et inférieure ou égale au deuxième. Si un élément contient une `AttributeValue` d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple, `{"S":"6"}` n'est pas comparable à `{"N":"6"}`. De même, `{"N":"6"}` n'est pas comparable à `{"NS":["6", "2", "1"]}`. |   | 
| ScanIndexForward | Spécifie le balayage ascendant ou descendant de l'index. DynamoDB renvoie des résultats reflétant l'ordre demandé déterminé par la clé de plage. Si le type de données est Nombre, les résultats sont renvoyés dans l'ordre numérique. Sinon, le balayage est basé sur des valeurs de code de caractère ASCII.Type : booléenLe paramétrage par défaut est `true` (ascendant). | Non | 
| ExclusiveStartKey | Clé primaire de l'élément à partir duquel continuer une requête antérieure. Une requête antérieure peut fournir cette valeur en tant que `LastEvaluatedKey` si cette opération de requête a été interrompue avant la fin, soit en raison de la taille de l'ensemble de résultats, soit en raison du paramètre `Limit`. La `LastEvaluatedKey` peut être retransmise dans une nouvelle demande de requête pour continuer l'opération à partir de ce point.Type : `HashKeyElement`, ou `HashKeyElement` et `RangeKeyElement` pour une clé primaire composite. | Non | 

## Réponses
<a name="API_Query_ResponseElements"></a>

### Syntaxe
<a name="API_Query_ResponseElements.syntax"></a>

```
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 (Nom)  |  Description  | 
| --- | --- | 
| Items  | Attributs d'élément répondant aux paramètres de requête.Type : mappage de noms d'attribut à leurs types de données et valeurs. | 
| Count  |  Nombre d'éléments dans la réponse. Pour de plus amples informations, consultez [Comptabilisation des éléments dans les résultats](Query.Other.md#Query.Count). Type : nombre  | 
| LastEvaluatedKey | Clé primaire de l'élément où l'opération de requête s'est arrêtée, incluant l'ensemble de résultats précédent. Utilisez cette valeur pour démarrer une nouvelle opération excluant cette valeur dans la nouvelle demande.La `LastEvaluatedKey` a une valeur `null` quand l'ensemble des résultats de la requête est complet (c'est-à-dire que l'opération a traité la « dernière page »). Type : `HashKeyElement`, ou `HashKeyElement` et `RangeKeyElement` pour une clé primaire composite. | 
| ConsumedCapacityUnits | Nombre d'unités de capacité de lecture consommées par l'opération. Cette valeur indique le nombre appliqué à votre débit approvisionné. Pour plus d’informations, consultez [Mode de capacité provisionnée DynamoDB](provisioned-capacity-mode.md). Type : nombre | 

## Erreurs spéciales
<a name="API_Query_SpecialErrors"></a>


****  

|  Erreur  |  Description  | 
| --- | --- | 
| ResourceNotFoundException  | La table spécifiée n'a pas été trouvée. | 

## Exemples
<a name="API_Query_Examples"></a>

 Pour des exemples d'utilisation du kit SDK AWS, consultez [Interrogation de tables dans DynamoDB](Query.md).

### Exemple de demande
<a name="API_Query_Examples_Request"></a>

```
// This header is abbreviated. For a sample of a complete header, see API de bas niveau de DynamoDB.
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"}
	}
}
```

### Exemple de réponse
<a name="API_Query_Examples_Response"></a>

```
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
}
```

### Exemple de demande
<a name="API_Query_Examples_Request2"></a>

```
// This header is abbreviated. For a sample of a complete header, see API de bas niveau de DynamoDB.
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}
```

### Exemple de réponse
<a name="API_Query_Examples_Response2"></a>

```
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
}
```

## Actions connexes
<a name="API_Query_Related_Actions"></a>
+  [Analyser](API_Scan_v20111205.md) 