So holen/scannen Sie alle Elemente AWS dynamodbmit node.js. Ich poste meinen Code hier.
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);
Dies gibt mir den folgenden Fehler.
ValidationException: Query condition missed key schema element: `user_id`.
Hier ist der Primärschlüssel user_id. Ich möchte es nicht mit meiner Abfragebedingung verwenden, da ich einen Wert festlegen muss, wenn ich den Primärschlüssel in erwähnt habe KeyConditionExpression. Vielleicht liege ich falsch. Schlagen Sie mir jedoch bitte eine gute Möglichkeit vor, alle Artikel von zu holen dynamodb, die habenuser_status = "Y"
Lösung des Problems
Das funktioniert bei mir:
export const scanTable = async (tableName) => {
const params = {
TableName: tableName,
};
const scanResults = [];
const items;
do{
items = await documentClient.scan(params).promise();
items.Items.forEach((item) => scanResults.push(item));
params.ExclusiveStartKey = items.LastEvaluatedKey;
}while(typeof items.LastEvaluatedKey!== "undefined");
return scanResults;
};
Keine Kommentare:
Kommentar veröffentlichen