Динамодб положил пункт перезаписывает старый - PullRequest
0 голосов
/ 20 июня 2019

У меня есть таблица, определенная следующим образом:

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 
       } 
     }

с этим кодом я всегда получаю один элемент, и он последний.

Что не такс этим кодом?

1 Ответ

1 голос
/ 20 июня 2019

Ваша таблица имеет только хеш-ключ, поэтому с данным идентификатором устройства может быть только одна запись.

Похоже, вы можете определить метку времени как ключ сортировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...