Удаление нескольких элементов DynammoDB - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть таблица БД в атрибуте AWS DynamoDB

+------------+----------+-------------+---------------+
| email (PK) | uid (SK) | isConnected | connectionExp |
+------------+----------+-------------+---------------+

email. Возможно дублирование.

Я пытаюсь удалить элементы после connectionExp.

export const delete = (e, ctx, cb) => {
  const params = {
    TableName: "MyTable",
    /*
      I want to skip Key attribute if I can.
    */
    ConditionExpression: "isConnected == :isConnected and connectionExp <= :connectionExp",
    ExpressionAttributeValues: {
      ":isConnected": false,
      ":connectionExp": moment().format("YYYY-MM-DD HH:mm:ss")
    }
  }
  DYNAMO_DB.delete(params, (err, data) => { ... });
}

Приведенный выше код не работает.

Как я могу удалить свои элементы с эффективностью

1 Ответ

1 голос
/ 04 ноября 2019

Чтобы получить ваши журналы, либо запускайте лямбду локально и проверьте консоль отладки, либо, если вы работаете в AWS, проверьте облачные журналы . Это даст вам точную ошибку, однако, вы правы в своем комментарии, что ключ является обязательным полем, поэтому ваш код не будет работать в своем текущем состоянии.

https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html

Можете ли вы установить атрибут TTL (время жизни) на своей таблице в качестве поля connectionExp . Динамо автоматически удалит все записи, выходящие за пределы вашего поля connectionExp . Однако это не будет учитывать ваше поле isConnected .

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html

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

https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html

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