Обновить значение ключа объекта внутри БД Динамо - PullRequest
0 голосов
/ 07 мая 2019

У меня есть следующий объект, сохраненный в Dynamo DB.

   const obj =  {
        data:{
            src:"s3://some_bucket_name/folder/foo.html",
            dest:"s3://some_bucket_name/folder/bar.pdf"
        },
        op: "someFunc",
        status: "not started"

    }

Это работает, и мои данные сохраняются в DynamoDB.Однако я хочу обновить статус данных в другом месте и изменить его на Запущено .

Это код, который у меня есть для обновления статус но это не работает.Там написано «неожиданный ключ найден в params.Key [status]»

          const params = {
                TableName: 'tableName',
                Key: {
                    "status": record.dynamodb.Keys.Document.S
                },
                UpdateExpression: "SET started = :started",
                ExpressionAttributeValues: {
                    ":started": "started"
                },
                ReturnValues: "UPDATED_NEW"
            }


          db.updateItem(params).promise()
            .then(data => console.log(data, 'updated data data'))
            .catch(err => console.log(err, 'err updating item'))

Я проверил другие примеры на SO и в Интернете, но не смог заставить его работать, может кто-нибудь подсказать мне, что я делаю неправильно?

1 Ответ

1 голос
/ 07 мая 2019

Key должен ссылаться на атрибут первичного ключа вашей таблицы. Я не верю, что поле status является первичным ключом таблицы.

Поле status относится к UpdateExpression как

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