Как удалить элемент с карты в aws Dynamodb, используя Nodejs - PullRequest
0 голосов
/ 20 марта 2020

У меня есть таблица в Динамо-БД с именем Settings, уникальные ключи email и атрибут display_names, это тип Map и имеет следующую структуру {'123-456': "any name", '789-123': 'another name'}

Я пытаюсь удалить имя с атрибутом '123-456' со следующими параметрами

TableName: 'Settings',
        Key: {
            email: 'user@test.com',
        },
        UpdateExpression: 'DELETE display_names :p',
        ExpressionAttributeValues: '{":p" : {"S": 123-456}}'
    };

Но когда я запускаю код, я получаю следующую ошибку ExpressionAttributeValues contains invalid key: Syntax error; key: \"11\"",

Я надеюсь, что вы можете мне помочь, заранее спасибо!

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете использовать ниже UpdateExpression, чтобы удалить ключ с карты.

const keyToDelete = '123-456';
const params = {
  TableName: 'Settings',
  Key: {
    email: 'user@test.com',
  },
  UpdateExpression: `REMOVE #parent.#key`, // Here. Note: use `` instead of '',
  ExpressionAttributeNames: {  
    "#parent": 'display_names',
    "#key": keyToDelete
  },  
  ReturnValues: 'ALL_NEW'
};
...