“La condition élément clé ne correspond pas au schéma” erreur lors de l'obtention d'un élément de DynamoDB
C'est la table de partition clé de réglage
Le contenu de la table
Lorsque j'ai tenté d'obtenir un élément de la table, il imprime cette erreur
botocore.des exceptions.ClientError: Une erreur s'est produite
(ValidationException) lors de l'appel de l'opération GetItem: La condition
élément clé ne correspond pas au schéma
C'est mon code
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('testDynamodb')
response = table.get_item(Key={'userId': "user2873"})
item = response['Item']
print(item)
Des idées? merci.
OriginalL'auteur Keoros | 2017-03-13
Vous devez vous connecter pour publier un commentaire.
Votre schéma de table a la fois de clé de hachage et de la clé de tri défini. Lors de l'utilisation de DynamoDB GetItem vous devez fournir deux d'entre eux, voici un extrait de la documentation
Donc donné votre exemple, voici comment get_item paramètres devrait ressembler à:
En fait, la
hash key
etpartition key
sont la même chose. Marrant que personne n'a remarqué qu'avant. Il devrait donc dire " Votre schéma de table a la fois de clé de hachage et de la clé de tri défini.' Allons résoudre ce problème.Quant à votre question, vous pouvez dire que le schéma a deux partition (hash) de la clé et la clé de tri défini en regardant la première image (plus précisément, à la
Primary partition key
et laPrimary sort key
champs)Yep, maintenant que vous avez fait la correction (et maintenant que j'ai joué un peu plus avec le Dynamo et gagné un peu plus d'expérience ☺), c'est logique. Merci!
est-ce à dire qu'il est impossible d'interroger ce tableau pour tous les enregistrements qui ont été createdAt une seule valeur? (l'utilisateur créé à une certaine date?) Qui me semble bizarre. (noob de dynamodb)
OriginalL'auteur xtx
Une autre chose qui fonctionne est la suivante code ci-dessous:
OriginalL'auteur user754036