Как проверить, существует ли EmaiID или нет в DynamoDB? - PullRequest
0 голосов
/ 22 апреля 2019

Я использую узел 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!!!")
   }
})
};

KeyconditionExpression:

        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);
       }


    });
    }

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Вы ищете условное выражение .Прокрутите вниз до заголовка раздела «Предотвращение перезаписи существующего элемента».

0 голосов
/ 23 апреля 2019

вы можете сделать emailId первичным ключом DynamodB, так как идентификатор электронной почты будет уникальным, и он не будет вставлять тот же элемент того же электронного письма снова, и он будет обновляться только тогда, когда электронная почта различна

, поэтому, указав идентификатор электронной почты в качестве первичного ключа, вы решите вашу проблему. Надеюсь, это поможет

...