Amazon dynamodb 如何检查发电机中是否存在emaiID?

Amazon dynamodb 如何检查发电机中是否存在emaiID?,amazon-dynamodb,Amazon Dynamodb,我使用节点js来实现lambda函数。我需要检查emailID是否存在于dynamo数据库中…如果emailID存在,它应该提示用户emailID已经存在。如果不存在,它应该将值存储在dynamo数据库中 EmailID是排序键 Customername是主键 我该怎么做 下面是我的代码: var doc = require('aws-sdk'); var dynamodb = new doc.DynamoDB() var tableName = "Testing"; exports.han

我使用节点js来实现lambda函数。我需要检查emailID是否存在于dynamo数据库中…如果emailID存在,它应该提示用户emailID已经存在。如果不存在,它应该将值存储在dynamo数据库中

EmailID是排序键 Customername是主键

我该怎么做

下面是我的代码:

var doc = require('aws-sdk');
var dynamodb = new doc.DynamoDB()

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: { EmailID : "abc@gmail.com",
                   CustomerName : "ABC"},
            AttributeUpdates: {
                verified: {
                    Action: "PUT",
                    Value: true
                }
            }
        };

        // Update the user.
        dynamodb.update(params, function(err, data)
        {
            if (err)
            {
                console.log(JSON.stringify(err));
                context.fail(JSON.stringify(err));
                return;
            }
            context.succeed("User successfully updated.");
        });
putItem

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

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


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

   var tableName = "Testing";

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

为了实现这一点,我将使用Put操作并使用“exists”参数。将其设置为false将确保在项目已存在时put操作将失败。如果没有匹配项,则put将插入记录

有关如何在javascript中使用此操作的更多详细信息,请查看文档:

因此,在put示例中,可以将以下内容添加到参数中:

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

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


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

    var tableName = "Testing";

    console.log(event.EmailID)

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

你能帮我写代码吗…我试过了,我找不到了…我在问题中添加了代码…此代码将把数据放入数据库…但我需要检查emilID是否已经存在…如果存在,它应该提示用户emailid已经存在…如果emailid没有退出,它应该将所有细节放入dbAm获取错误消息:“一个或多个参数值无效:项目中缺少密钥CustomerName”,请帮助我