【发布时间】:2018-09-04 01:16:55
【问题描述】:
我想在 dynamodb 中创建一个新用户,但在此之前我想检查用户是否存在于 db 中。这里主分区键是用户名。我想检查条件中的 emailId 和用户名。两者都应该是唯一的。例如
user1 user1@gmail.com
user2 user2@gmail.com
user3 user3@gmail.com
Example1 当我创建一个新用户 username= user4 和 emailId=user1@gmail.com 它不应该创建一个新用户,因为emailId 已经存在。
Example2 当我创建一个新用户 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);
});
我们可以为此提供另一种解决方案吗?使用查询、索引名?像这样。 任何建议将不胜感激。
谢谢,
【问题讨论】: