我有一个包含多个项目的表,其中一些项目没有特定的属性。现在我想扫描表格中的这些项目。
我正在使用AWS的JavaScript SDK。
我尝试了很多不同的变体,我主要从AWS文档和一些谷歌搜索结果中获取。
我提出的最好的是: (并且它返回所有不考虑条件的项目)
const params = {
TableName: curTableName,
IndexName: "THE_number-index",
ScanFilter: {
"THE_number": {
ComparisonOperator: "NULL"
}
}
};
dynamodb.scan(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});

scan()调用的正确参数是什么?
答案 0 :(得分:2)
最好使用FilterExpression
代替ScanFilter
。
我认为有一个名为attribute_exists()
的功能是您正在寻找的功能。
另外,请查看this example - 大约3/4的页面:SQL-Like Expressions
。
答案 1 :(得分:1)
感谢@Steven S.回答,我找到了一个解决方案:
const params = {
TableName: curTableName,
ProjectionExpression: "Id,THE_number",
FilterExpression: 'attribute_not_exists(THE_number)'
};
dynamodb.scan(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});