Так что в основном у меня есть массив (features
) и я хочу выполнить upsert
операцию в dynamodb
из forEach-loop
. массив features
выглядит следующим образом: [{'feature': 'existing_feature', 'visibility': ['should_update']}, {'feature': 'new_feature', 'visibility': ['should_insert']} ]
. Теперь здесь обновление происходит, как и ожидалось, но вставка не происходит.
update(table, params) {
const query = {
...params,
TableName: this.tableName(table)
}
console.log('update-query', query)
return this._docClient.update(query).promise()
}
updateSupportTierDetails(features) {
console.log('inside updateSupportTierDetails')
const promises = []
features.forEach(element => {
const params = {
Key: {
'feature': element.feature
},
UpdateExpression: 'set visibility = :visibility',
ExpressionAttributeValues: {
':visibility': element.visibility
},
ReturnValues: "UPDATED_NEW"
}
console.log('updateSupportTierDetails params', params)
const promise = this.update('features', params)
console.log('promise', promise)
promises.push(promise)
});
console.log('promises', promises)
return Promise.all([...promises])
.then(result => {
console.log('result', result)
if(result.count === 0) {
console.log('updateSupportTierDetails: No Upsert Operation')
return []
}
console.log('updateSupportTierDetails: Upsert Operation Success')
return result
})
}