AWS DynamoDB Scan filterExpression - 简单的数字比较
AWS DynamoDB Scan filterExpression - simple number comparison
我正在尝试使用过滤器表达式 (documentation here)
进行简单的 dynamoDB 扫描
这是我的表达式字符串:
"attribute_exists("my_db_key") AND ("my_db_key" = 1)"
这只是说明:
"If a value for my_db_key exists AND my_db_key EQUALS 1, return it in the results"
但是它不起作用,我收到此错误:
Invalid FilterExpression: Syntax error; token: "1", near: "= 1)
我知道我可以为值使用属性值占位符,然后在表达式中使用它,但我不想这样做。根据亚马逊的文档,这不是必需的。
那么我该怎么做这个简单的表达式呢?有人有文档示例或 link 吗?不幸的是,亚马逊的文档没有帮助。
注意:我在 iOS 上用 AWSDynamoDBScanInput 实现了这个,但我这里的问题是与全局表达式语法有关,所以它不重要。
您必须使用占位符并单独传递值。这是一些 documentation and a Post from AWS forums
您的参数需要看起来像这样(对于 Node AWS 库):
params = {
"FilterExpression": 'attribute_exists("my_db_key") AND ("my_db_key" = :value)',
"ExpressionAttributeValues": {
":value": 1
},
// ...
};
docClient.scan(params, function(err, data){
// Handle err or process data
})
对于某些语言,参数应该更像这样:
{
"FilterExpression": 'attribute_exists("my_db_key") AND ("my_db_key" = :value)',
"ExpressionAttributeValues": {
":value": {"N":1}
},
// ...
};
我正在尝试使用过滤器表达式 (documentation here)
进行简单的 dynamoDB 扫描这是我的表达式字符串:
"attribute_exists("my_db_key") AND ("my_db_key" = 1)"
这只是说明:
"If a value for my_db_key exists AND my_db_key EQUALS 1, return it in the results"
但是它不起作用,我收到此错误:
Invalid FilterExpression: Syntax error; token: "1", near: "= 1)
我知道我可以为值使用属性值占位符,然后在表达式中使用它,但我不想这样做。根据亚马逊的文档,这不是必需的。
那么我该怎么做这个简单的表达式呢?有人有文档示例或 link 吗?不幸的是,亚马逊的文档没有帮助。
注意:我在 iOS 上用 AWSDynamoDBScanInput 实现了这个,但我这里的问题是与全局表达式语法有关,所以它不重要。
您必须使用占位符并单独传递值。这是一些 documentation and a Post from AWS forums
您的参数需要看起来像这样(对于 Node AWS 库):
params = {
"FilterExpression": 'attribute_exists("my_db_key") AND ("my_db_key" = :value)',
"ExpressionAttributeValues": {
":value": 1
},
// ...
};
docClient.scan(params, function(err, data){
// Handle err or process data
})
对于某些语言,参数应该更像这样:
{
"FilterExpression": 'attribute_exists("my_db_key") AND ("my_db_key" = :value)',
"ExpressionAttributeValues": {
":value": {"N":1}
},
// ...
};