我想在query
的多个列上执行dynamodb
我想搜索4个字段
rule0
,因此hash key
是唯一的,
which_rule
是Global Index
,
rule1
是Global Index
,
rule2
是Global Index
,
我首先搜索rule0
然后rule1
然后rule2
我正在使用以下功能来匹配rule1
导致未找到rule0
function dynamoQueryRule1(rule0, rule1, funcQ) {
which_rule = "rule1";
var q = {
"KeyConditions": {
"rule0": {
"ComparisonOperator": "EQ",
"AttributeValueList": [{
"S": rule0
}]
}
},
"TableName": "tbl_scripts" + table_prefix,
"AttributesToGet": ['id'],
"ConditionalOperator": "AND",
"QueryFilter": {
"which_rule": {
"ComparisonOperator": "EQ",
"AttributeValueList": [{
"S": which_rule
}]
},
"rule1": {
"ComparisonOperator": "EQ",
"AttributeValueList": [{
"S": rule1
}]
}
}
};
var params = {
TableName: this.options.tbl_name
};
但是这个函数永远不会得到rule1
的结果。即使我已经在dymamo table
中创建了这些规则。
为了检查发电机数据,我已经检查了scan
它的工作正常但scan
有1mb的限制而不是完美的用例来解决我的问题。
请帮我查找query
格式的错误。
答案 0 :(得分:0)
检查您的响应对象是否有[LastEvaluatedKey]!= null。
如果设置了[LastEvaluatedKey],则表示您尚未查询整个数据集(同样是因为1M限制)。因此,您需要再次调用查询,在查询中设置ExclusiveStartKey =上一个响应中的LastEvaluatedKey。 (将所有结果附加在一起)
这个类似的问题显示了如何在node.js中执行此操作的语法: Recursive Fetch All Items In DynamoDB Query using Node JS