J'ai essayé de demander des données à partir du DynamoDB pendant 2 jours maintenant. Me rendre fou.Impossible d'interroger DynamoDB avec Begins_with pour la liste d'éléments
J'ai une table pour les bureaux dans un bureau. Dites qu'il y a deux bureaux, Cork et Dublin. J'ai une colonne appelée 'deskName' qui aurait des noms comme 'cork1', 'cork2', 'dub1', 'dub2'. Je veux être en mesure d'interroger la table pour les éléments qui contiennent «cork» ou «dub» car ils sont dans la même table, mais je ne veux pas revenir en arrière toute la table.
CODE:
const params = {
TableName: process.env.DYNAMODB_DESKS_TABLE,
//KeyConditionExpression: '#deskName = :deskName',
KeyConditionExpression: "begins_with(#deskName, :deskName)",
ExpressionAttributeNames: {
"#deskName": "deskName"
},
ExpressionAttributeValues: {
":deskName": "cork"
}
}
dynamodb.query(params, (error, result) => {
if (error) {
console.error(error);
callback(null, {
statusCode: error.statusCode || 501,
headers: {'Content-Type': 'text/plain'},
body: 'Couldn\'t get desks'
});
return;
}
const response = {
statusCode: 200,
body: JSON.stringify(result.Item)
};
callback(null, response);
});
YAML:
HotDeskDesksDBTable:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Retain
Properties:
AttributeDefinitions:
-
AttributeName: deskName
AttributeType: S
KeySchema:
-
AttributeName: deskName
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:provider.environment.DYNAMODB_DESKS_TABLE}
ERROR:
ValidationException: Query key condition not supported
J'ai réussi à obtenir un article qui revenait quand j'avais la condition = 'cork-1'. Je veux obtenir tous les articles qui commencent par «liège».
Merci
Quelle est l'erreur ou le problème exacty? –
Totalement oublié d'ajouter cela. Désolé, je vais l'ajouter à la question maintenant. – SmiffyKmc
@MarkB a ajouté l'erreur là maintenant, merci pour cela! – SmiffyKmc