首页 > 解决方案 > 如何检查 dynamoDB 中是否已经存在 EmaiID?

问题描述

我在 lambda 函数中使用节点 js。当用户尝试将一些数据放入发电机数据库时,它应该检查数据库中是否存在emailID...只有当emailID不存在时,数据才应该在数据库中更新...如果emailID存在,它应该提示emilID 已经存在的用户...

下面是我用来将数据放入数据库的代码...但它不会检查 emailID 是否存在...我需要检查数据库中是否存在 emilID...仅当不存在数据的应该更新...何这样做请帮助我

enter code here

var docClient = new AWS.DynamoDB.DocumentClient();


exports.handler = (event, context, callback) => {
    // TODO implement

   var tableName = "Test";

    console.log(event.EmailID)

    var parms = {
        TableName : tableName,
       Item : {
            "EmailID" : event.EmailID,
            "CustomerName" : event.CustomerName,
            "PersonName" : event.PersonName,
            "EmailSent" : event.EmailSent,
             "Password" : event.Password
        }
    };
docClient.put(parms, function(err, data)
{
   if (err){
       callback(err)
   }
   else
   {
       callback(null,"Successfully updated data!!!")
   }
})
};

关键条件表达式:

        const AWS = require('aws-sdk');
var doc

Client = new AWS.DynamoDB.DocumentClient();


    var tableName = "Testing";

    exports.handler = (event, context, callback) => {



    var EmailID = event.EmailID; // or any other var which is having emaiID

       console.log(event)

    var params=  {
             TableName: 'Testing',

             Key: {ConditionExpression: 'attribute_exists(event.EmailID)'
                }
    };




    docClient.get(params, function(err, data){
        if(err){
            callback(err, data);
        }else{
            callback(err, data);
       }


    });
    }

标签: amazon-web-servicesaws-lambdaamazon-dynamodb

解决方案


您正在寻找的是一个条件表达式。向下滚动到“防止覆盖现有项目”部分标题。


推荐阅读