gpt4 book ai didi

amazon-web-services - 查询 AWS DynamoDB 以返回半径内的经纬度结果

转载 作者:行者123 更新时间:2023-12-04 08:15:57 24 4
gpt4 key购买 nike

我对 dynamodb 还很陌生,我用 lambda 和 api 网关设置了它。

我的 dynamodb 表看起来像这样。
enter image description here

现在我只是使用以下 lambda 函数查询表。

var AWS = require('aws-sdk');
var dynamoDB = new AWS.DynamoDB();

exports.handler = function(event, context) {

/**
* Debugging events
* @type {[type]}
*/
console.log("Request received:\n", JSON.stringify(event));
console.log("Context received:\n", JSON.stringify(context));

/**
* Important this needs to be your Dynamo DB table name
* @type {String}
*/
var tableName = "Tracker";
var datetime = new Date().getTime().toString();

var queryData = {
"TableName": tableName,
"ConsistentRead": true,
"KeyConditionExpression": "TrackIt = :val",
"ExpressionAttributeValues": {":val": {"S": event.tid}}
};
dynamoDB.query(queryData, function(err, data) {
if (err) {
context.fail('ERROR: Dynamo failed: ' + err);
}else{
context.done(null,data.Items);
}
});

};

现在我想做的是根据某个半径内的纬度和经度值查询表,比如 3 英里,现在我知道如何用 mysql 做到这一点,但我真的很想知道在尝试用 dynamodb 做到这一点时从哪里开始.

我真的无法在网上找到任何有用的教程,有没有其他人做过或正在做这件事,可以为我指明正确的方向,我将不胜感激。

最佳答案

您可以使用以下表达式:

var queryData = {
"TableName": tableName,
"ConsistentRead": true,
"KeyConditionExpression": "#latitude between :min and :max",
"ExpressionAttributeNames": {
"#latitude": "latitude",
},
"ExpressionAttributeValues": {
":min": [MIN_LATITUDE],
":max": [MAX_LATITUDE]
}
};

更多信息: http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.NodeJs.04.html

关于amazon-web-services - 查询 AWS DynamoDB 以返回半径内的经纬度结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38296300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com