I have sensors sending data to the DynamoDB table every 4 seconds and I want to retrieve only the latest value of a particular sensor. The primary keys in the table are sensor ID and SysDt time stamp. I have specified an index to use sensor ID as Partition Key and GWID (Gateway ID) as the Sort Key. I am unable to retrieve only the latest values from the table.
This is my script:
AWS.config.update({
region: "us-west-2",
endpoint: 'https://dynamodb.us-west-2.amazonaws.com',
accessKeyId: "Fakeaccesskey",
secretAccessKey: "Fakesecretkey"
});
var docClient = new AWS.DynamoDB.DocumentClient();
function readItemtesttwovalues() {
var table = "TA_Log1";
var indexidgwid = "ID-GWID-index";
var ID = "BB00000013";
var GWID = "AA00000001";
var params = {
TableName: table,
IndexName: indexidgwid,
Key:{
"ID": ID,
"GWID": GWID
},
ScanIndexForward: false,
Limit: 1
};
docClient.query(params, function(err, data) {
if (err) {
document.getElementById('testtwostatus').innerHTML = "Unable to read item: " + "\n" + JSON.stringify(err, undefined, 2);
} else {
document.getElementById('testtwostatus').innerHTML = data.Item.Status;
document.getElementById('testtwotemp').innerHTML = data.Item.Temp;
document.getElementById('testtwotempmap').innerHTML = data.Item.Temp;
document.getElementById('testtwohum').innerHTML = data.Item.Hum;
document.getElementById('testtwohummap').innerHTML = data.Item.Hum;
document.getElementById('testtwobat').innerHTML = data.Item.BatV;
document.getElementById('testtwobatmap').innerHTML = data.Item.BatV;
var temp = Number(data.Item.Temp);
}
});
}
I have read this but I am unable to figure out how to go about it.
I thank you for your help.