我的表格定义如下:
Type: "AWS::DynamoDB::Table"
Properties:
AttributeDefinitions:
- AttributeName: "deviceId"
AttributeType: "S"
KeySchema:
- AttributeName: "deviceId"
KeyType: "HASH"
我调用以下代码以添加新条目
this.client = new AWS.DynamoDB.DocumentClient();
public saveItem(entry): Promise<any> {
let dbEntry = Database.decorateWithStandardFields(JSON.parse(entry));
const params = {
TableName: eventLogTable,
Item: dbEntry
};
console.log('save this to db', params);
return this.client.put(params).promise();
}
2个不同的条目是
{ TableName: 'sls-basic-operations-items-dev',
Item:
{
status: 'changed',
deviceId: 'device12345',
wkStation: 'xyz',
Timestamp: 1561050389,
TTL: 1561136789
}
}
第二个仅在时间戳和TTL值上有所不同。
{ TableName: 'sls-basic-operations-items-dev',
Item:
{
status: 'changed',
deviceId: 'device12345',
wkStation: 'xyz',
Timestamp: 1561050417,
TTL: 1561136817
}
}
使用此代码,我总是得到一个项目,它是最后一个项目。
此代码有什么问题?
答案 0 :(得分:1)
您的表只有一个哈希键,因此只能有一条记录具有给定的deviceID。
似乎您可能想将时间戳定义为排序键。