扫描DynamoDB以查找没有特定属性的项目

时间:2016-01-12 13:52:07

标签: amazon-web-services amazon-dynamodb

我有一个包含多个项目的表,其中一些项目没有特定的属性。现在我想扫描表格中的这些项目。

我正在使用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()调用的正确参数是什么?

2 个答案:

答案 0 :(得分:2)

最好使用FilterExpression代替ScanFilter

我认为有一个名为attribute_exists()的功能是您正在寻找的功能。

Scan request docs

Condition expression docs

另外,请查看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
});