我想在dynamodb中创建一个新用户,但在此之前,我想检查该用户是否存在于db中。这里主分区键是用户名。我想检查条件中的emailId和用户名。两者都应该是唯一的。例如
user1 user1@gmail.com
user2 user2@gmail.com
user3 user3@gmail.com
示例1 当我创建新用户 username = user4 和 emailId=user1@gmail.com 时,不应创建新用户,因为emailId已经存在。
示例2 当我创建新用户 username = user1 和 emailId=user4@gmail.com 时,不应创建新用户,因为用户名已经存在。
这些是场景。谁能告诉我对此的最佳解决方案是什么?
我使用 scan 方法
找到了解决方案const AWS = require('aws-sdk');
const dynamoDb_DocumentClient = new AWS.DynamoDB.DocumentClient();
let params = {
TableName: "OP-User",
ProjectionExpression: 'userName, emailAddress',
FilterExpression: "userName = :userName OR emailAddress = :emailAddress",
ExpressionAttributeValues: {
":userName": "user1",
":emailAddress": "user111@asurion.com"
}
};
dynamoDb_DocumentClient.scan(params, function (err, data) {
if (err) {
console.log("err: " + err);
}
console.log("data: " + data);
});
我们可以为此提供另一种解决方案吗?使用查询,索引名?像这样。 任何建议将不胜感激。
谢谢