ize*_*god 2 node.js amazon-dynamodb dynamodb-queries
所以基本上我有一个 array( ) 并想从 a中features执行upsert操作。该数组看起来像这样:。现在这里更新按预期发生,但插入没有发生。dynamodbforEach-loopfeatures[{'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
})
}
Run Code Online (Sandbox Code Playgroud)
如果不存在,DynamoDb put将插入新记录;如果存在,则更新现有记录(基于分区键)
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#put-property
但是,如果您要循环更新插入多个项目,请考虑使用批量写入。
| 归档时间: |
|
| 查看次数: |
3146 次 |
| 最近记录: |