【发布时间】:2017-02-08 23:50:18
【问题描述】:
我有一个如下所示的 DynamoDB 表:
(大约有 1500000 条这样的条目具有不同的时间戳)
我有 2 个 GSI:
我正在尝试检索表中某一天的所有行。
这就是我的代码的样子(NodeJS):
var AWS = require("aws-sdk");
AWS.config.update({accessKeyId: "", secretAccessKey: ""});
AWS.config.update({region: 'us-east-1'});
var docClient = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: "QfGamingTransactionsProd",
IndexName: 'Result-RedeemedAt-index',
KeyConditionExpression: "#rs = :result and begins_with (#rat, :Rat)",
ExpressionAttributeNames: {
"#rs": "Result",
"#rat": "RedeemedAt"
},
ExpressionAttributeValues: {
":result": "SUCCESS",
":Rat": "2016-10-20"
}
};
docClient.query(params, function (err, data) {
if (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
} else {
console.log("\nQuery succeeded. \n");
console.log("- Total", data.Count);
}
});
它似乎正在工作,但我得到的结果比预期的要少。相同的代码在较小的表上也能正常工作。
与“扫描”类似的结果。
我错过了什么?
【问题讨论】: