【问题标题】:Get records using multiple conditions in DynamoDB in Nodejs在 Nodejs 中使用 DynamoDB 中的多个条件获取记录
【发布时间】:2018-09-04 01:16:55
【问题描述】:

我想在 dynamodb 中创建一个新用户,但在此之前我想检查用户是否存在于 db 中。这里主分区键是用户名。我想检查条件中的 emailId 和用户名。两者都应该是唯一的。例如

user1 user1@gmail.com
user2 user2@gmail.com
user3 user3@gmail.com 

Example1 当我创建一个新用户 username= user4emailId=user1@gmail.com 它不应该创建一个新用户,因为emailId 已经存在。

Example2 当我创建一个新用户 username= user1emailId=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);
      });

我们可以为此提供另一种解决方案吗?使用查询、索引名?像这样。 任何建议将不胜感激。

谢谢,

【问题讨论】:

    标签: node.js amazon-dynamodb


    【解决方案1】:

    在创建和项目之前,使用 AWS DynamoDB Conditional Expressions 比较用户名和 ID 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多