我在使用Node.js函数扫描DynamoDB表时遇到了一些问题。
当我在函数中进行扫描时,我得到了2行数据,但是在AWS控制台中进行扫描时,我得到了3行数据。
以下是代码:
utilsAWS扫描函数:
scanDocuments(params) {
return new Promise((resolve, reject) => {
var docClient = new this.AWS.DynamoDB.DocumentClient();
console.log(`Querying ${params.TableName}...`);
docClient.scan(params, function (err, data) {
if (err) {
console.error(
"Unable to query. Error:",
JSON.stringify(err, null, 2)
);
return reject(err);
} else {
console.log("Query succeeded.");
return resolve(data.Items);
}
});
});
}
//消费扫描功能
var params = {
TableName: 'minha-redacao-redacoes',
FilterExpression: "#e = :cpfAluno",
ExpressionAttributeNames: {
"#e": "cpfAluno",
},
ExpressionAttributeValues: {
":cpfAluno": `8509754....`
},
};
try {
const res = await utilsAWS.scanDocuments(params);
console.log(res.length); //2
} catch(err) {
console.error(err);
}
然而看看AWS控制台:
扫描node.js
函数时未找到行ID:f3ebb776-13eb-4395-884e-e81f23044ca1
。为了部分解决问题,我创建了f3ebb776-13eb-4395-884e-e81f23044ca1_manual
文档。
有人知道这个问题的最终解决方案吗?
ExpressionAttributeValues
的值为8509754....
,而您的屏幕截图显示为8509754
(缺少点)。这是一个打字错误吗? - Tasos P.