我尝试使用lambda AWS从DynamoDB获得满足条件的前10项。我试图使用极限参数,但它是(基于该网站)
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#scan-财产
“要评估的最大项目数(不一定是匹配项目数)”。
如何获得满足我条件的10件首批产品?
var AWS = require('aws-sdk');
var db = new AWS.DynamoDB();
exports.handler = function(event, context) {
var params = {
TableName: "Events", //"StreamsLambdaTable",
ProjectionExpression: "ID, description, endDate, imagePath, locationLat, locationLon, #nm, startDate, #tp, userLimit", //specifies the attributes you want in the scan result.
FilterExpression: "locationLon between :lower_lon and :higher_lon and locationLat between :lower_lat and :higher_lat",
ExpressionAttributeNames: {
"#nm": "name",
"#tp": "type",
},
ExpressionAttributeValues: {
":lower_lon": {"N": event.low_lon},
":higher_lon": {"N": event.high_lon}, //event.high_lon}
":lower_lat": {"N": event.low_lat},
":higher_lat": {"N": event.high_lat}
}
};
db.scan(params, function(err, data) {
if (err) {
console.log(err); // an error occurred
}
else {
data.Items.forEach(function(record) {
console.log(
record.name.S + "");
});
context.succeed(data.Items);
}
});
};
我想你已经知道了这背后的原因:DynamoDB在ScannedCount和Count之间的区别。据此,
ScannedCount-在将任何过滤器表达式应用于结果之前查询或扫描的项目数。
Count-响应中返回的项目数。
修复方法记录在以下内容的正上方:
对于查询或扫描操作,如果操作未返回表中的所有匹配项,DynamoDB可能会返回LastEvaluatedKey值。要获取匹配项的完整计数,请从上一个请求中获取LastEvaluatedKey值,并将其用作下一个请求中的ExclusiveStartKey值。重复此操作,直到DynamoDB不再返回LastEvaluatedKey值。
因此,您的问题的答案是:使用DynamoDB响应中的LastEvalatedKey
并再次扫描。
最近看到一个视频直播,会实时公布魔法上网的免费节点,博主说是通过扫描节点获取的,请问一下具体是什么原理,是通过什么方式扫描的?
对于何时选择GSI或其他方式的全表扫描,是否有任何衡量标准? 我知道两者背后的基本概念,但GSI的定价模型非常依赖于表格本身,我很难决定 更重要的是,如何在不同的表大小下进行扩展,或者多少扫描效率太低,而需要GSI 顺便说一下,我很难找到好的资源来过滤表达式,以便在dynamodb上进行查询和扫描,有什么好的建议吗?(“#v
我必须使用扫描仪输入未知数量的数字。一旦用户输入-1,程序需要打印输入的所有数字的总和,然后结束程序。总和中需要包含-1。 我不能得到正确的总数。有人能帮忙吗?
我正试图向SonarQube添加自定义度量,但每次运行传感器时都会出现以下错误: 我所做的是在管理接口中创建一个自定义度量,将其valuetype设置为Integer,并使用其键将计算值添加到传感器中的。
AWS描述 单个扫描请求可以消耗(1 MB页面大小/4 KB项目大小)/2(最终一致读取)=128次读取操作。https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-query-scan.html 128似乎是Scan命令一次可以读取的最大容量。 然而,当我进行测试时,扫描命令(最终一致,没有任何过滤器选项)总是以11
我正在尝试迭代结果数组变量。 我可以在函数内部获取数组值,但是当我尝试在函数外部记录它时,它会显示null。 我在谷歌上搜索了几个帖子,我看到foreach不被推荐,建议是for循环,我甚至尝试过,结果为空。 游标中的问题是什么。forEach()。。。 日志结果: