Я пытаюсь выполнить одну из самых простых операций «Обновление» в списке динамо-db.Обновление набора в db Dynamo с использованием Node Js
Таблица Schema -
businessId : String, customers: StringSet, itemCode : NumberSet
я запись вставляется через пут -
bussinessId = "sampleBusiness", cuatomers 0: "cust1", itemCode 0: 4554
Я хочу, чтобы добавить больше деталей с помощью обновления, и вот что я попробовал -
var updateRequest = {
'TableName' : tableName,
'Key' : {
'businessId' : {
"S" : businessId
}
},
'UpdateExpression' : "SET itemCode[2] =:attrValue",
'ExpressionAttributeValues' : {
':attrValue' : {
"N" : "564564"
}
}
};
Это дает мне ошибку -
Путь к документу содержится в документе недействителен
Я хотел, чтобы добавить новые записи таким образом, пытавшихся это также -
var sm = [];
sm[0] = "56465";
//Add business to
var updateRequest = {
'TableName' : tableName,
'Key' : {
'businessId' : {
"S" : businessId
}
},
'UpdateExpression' : 'SET #attrName = list_append(#attrName, :attrValue)',
'ExpressionAttributeNames' : {
'#attrName' : 'itemCode'
},
'ExpressionAttributeValues' : {
':attrValue' : {
"NS" : sm
}
}
};
Это дает:
ValidationException: Invalid UpdateExpression: Неверный тип операнда для оператора или функции; оператор или функция: list_append, тип операнда: NS
также попытался это -
':attrValue' : {
"N" : "4564"
}
Но ту же ошибку.
В соответствии с примером, приведенным в http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html, он добавляет новый элемент в обзорный список FiveStar
. Имя атрибута выражения #pr
: ProductReviews
; значение атрибута :r
является одноэлементным списком. Если в списке ранее были два элемента, [0] и [1], то новый элемент будет [2].
SET #pr.FiveStar = list_append(#pr.FiveStar, :r)
, который говорит :r
является список один элемент
я пропускаю некоторые вещи здесь. Запросите, если кто-нибудь может помочь. Поразило это надолго. Я просто хочу добавить элементы в набор в dynamo db, используя nodeJS.