我对dynamodb很新,我用lambda和api网关设置它。
现在我只是使用以下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。
我真的无法在网上找到任何有用的教程,其他任何人都这样做或者这样做可以指出我正确的方向,我真的很感激。
答案 0 :(得分:3)
您可以使用以下表达式:
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
答案 1 :(得分:0)
如果您需要经常支持地理空间查找用例,我不知道Dynamo将是一个很好的解决方案。您可能会考虑更直接支持地理空间功能的数据库解决方案。