Comment récupérer/analyser tous les éléments à partir d'AWS dynamodb` l'aide de node.js
Comment chercher/recherche tous les éléments de AWS dynamodb
à l'aide de node.js
. Je vous poste mon code ici.
var docClient = new aws.DynamoDB.DocumentClient();
var params = {
TableName:"users",
KeyConditionExpression:"user_status=:status",
ExpressionAttributeValues: {
":status": "Y"
}
};
var queryExecute = function(callback) {
docClient.query(params,function(err,result) {
if(err) {
console.log(err)
callback(err);
} else {
console.log(result);
if(result.LastEvaluatedKey) {
params.ExclusiveStartKey = result.LastEvaluatedKey;
queryExecute(callback);
} else {
callback(err,items);
}
}
});
}
queryExecute(callback);
Ce qui me donne d'erreur ci-dessous.
ValidationException: Query condition missed key schema element: `user_id`.
Ici la clé primaire est user_id. Je ne veux pas l'utiliser avec ma condition de requête, parce que j'ai besoin de définir une valeur si je l'ai mentionné clé primaire dans KeyConditionExpression
. Peut-être que je me trompe. Mais s'il vous plaît me suggérer un bon moyen de récupérer tous les éléments de dynamodb
, qui est d'avoir user_status = "Y"
OriginalL'auteur charlie | 2017-06-16
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez obtenir les données de DynamoDB sans utiliser de clé de Hachage de la valeur, vous devez utiliser
Scan API
.Remarque: L'Analyse de l'API lit tous les éléments de la table pour obtenir les résultats. Donc, c'est une opération coûteuse en DynamoDB.
Autre Approche : Utilisation GSI
Scan de Code ci-dessus par le sceanario:-
Le code a un appel récursif jusqu'à LastEvaluatedKey est pas défini. Oui, ça doit fonctionner.
Désolé j'ai raté ça!
if (typeof de données.LastEvaluatedKey != "undefined") il Vous suffit de faire: if (data.LastEvaluatedKey)
Bien que cela semble fonctionner, je pense qu'il serait beaucoup mieux si cette réponse serait effectivement renvoyer les données, au lieu de juste l'impression qu'il la console. Ce n'est pas forcément facile pour les gens de nouvelles JS ou de la programmation fonctionnelle à venir avec une solution d'ici, qui renvoie en fait les données (via callbak) à la fonction appelante.
OriginalL'auteur notionquest
C'est de travailler pour moi:
OriginalL'auteur Hank