gpt4 book ai didi

node.js - AWS DynamoDb 查询表

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:25 27 4
gpt4 key购买 nike

我正在尝试在一个新项目中使用 Dynamodb,但我不得不说我很困惑。

所以我设置了一个新表,其中包含一个名为 ID 的哈希键,我将其设置为时间戳,因为它需要是唯一的。

然后我将使用 Lambda 插入数据,如下所示

var tableName = "TrackerTable";
var datetime = new Date().getTime().toString();
var putData = {
"TableName": tableName,
"Item": {
"ID" : {
"N": datetime
},
"TrackIt": {
"S": event.trackit
},
"Latitude": {
"N": event.lat
},
"Longitude": {
"N": event.lon
},
"Time": {
"N": datetime
}
}
}
dynamoDB.putItem(putData, function(err, data) {
if (err) {
context.fail('ERROR: Dynamo failed: ' + err);
} else {
console.log('Dynamo Success: ' + JSON.stringify(data, null, ' '));
context.succeed('SUCCESS');
}
});

所以我的 table 开始看起来像这样,这很好。 enter image description here所以我尝试使用 Lambda 根据 trackit 列返回结果?

我有以下代码,但不起作用。

var tableName = "TrackerTable";
var datetime = new Date().getTime().toString();

var queryData = {
"TableName": tableName,
"ConsistentRead": true,
"KeyConditionExpression": "trackit = :val",
"ExpressionAttributeValues": {":val": {"S": "05LUGFr7494"}}
};
dynamoDB.query(queryData, function(err, data) {
if (err) {
context.fail('ERROR: Dynamo failed: ' + err);
}else{
console.log('Dynamo Success: ' + JSON.stringify(data, null, ' '));
context.done(null, data.Items);
}
});

我收到此错误。

{
"errorMessage": "ERROR: Dynamo failed: ValidationException: Query condition missed key schema element: ID"
}

我如何查询所有 trackit 值,我无法添加 ID 值,因为它只会返回一个值?

很困惑。

最佳答案

您设置表的方式我认为您需要在此处进行扫描而不是查询[1]。如果这是您经常执行的操作并且希望能够执行查询,则需要将 trackit 属性添加为二级索引之一。

[1] http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html

关于node.js - AWS DynamoDb 查询表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910433/

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