以下是一个使用AWS Lambda和Node.js的示例代码,该代码用于检查数组中的元素是否存在,如果存在则递增该元素的值,否则添加新元素。
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({ region: 'your-region' });
exports.handler = async (event) => {
const inputArray = event.inputArray;
const outputArray = [];
for (let i = 0; i < inputArray.length; i++) {
const element = inputArray[i];
// 检查元素是否在数据库中存在
const params = {
TableName: 'your-table-name',
Key: { 'element': { 'S': element } }
};
const data = await dynamodb.getItem(params).promise();
if (data.Item) {
// 如果元素存在,则递增值
const updateParams = {
TableName: 'your-table-name',
Key: { 'element': { 'S': element } },
UpdateExpression: 'SET #count = #count + :increment',
ExpressionAttributeNames: { '#count': 'count' },
ExpressionAttributeValues: { ':increment': { 'N': '1' } },
ReturnValues: 'UPDATED_NEW'
};
await dynamodb.updateItem(updateParams).promise();
} else {
// 如果元素不存在,则添加新元素
const putParams = {
TableName: 'your-table-name',
Item: { 'element': { 'S': element }, 'count': { 'N': '1' } }
};
await dynamodb.putItem(putParams).promise();
}
outputArray.push(element);
}
return outputArray;
};
这个示例假设您已经在AWS上创建了一个DynamoDB表,表名为"your-table-name",其中包含一个名为"element"的字符串类型主键和一个名为"count"的数字类型属性。您还需要将"your-region"替换为您的AWS区域。