DynamoDB是否可以生成唯一的自动ID?

编程入门 行业动态 更新时间:2024-10-09 16:31:40

<a href=https://www.elefans.com/category/jswz/34/1770987.html style=DynamoDB是否可以生成唯一的自动ID?"/>

DynamoDB是否可以生成唯一的自动ID?

我是DynamoDB Lamda的新手,我正在关注一些教程,但我需要用任何方法在Dynamodb中生成autoid吗?

这是我的lambda函数,正如您看到的那样,我将QuestionID传递为硬编码,我需要知道有什么方法可以为此创建唯一的吗?我想我可以将Math随机函数与时间戳链接起来,但是我真的想知道创建它的更好的选择。

const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region: 'us-east-2', apiVersion: '2012-08-10'});

exports.handler = (event, context, callback) => {
    const params = {
        Item: {
            "QuestionID": {
                S: "dasf787af8safa"
            },
            "Would": {
                S: "2ass8"
            },
            "Rather": {
                S: "asda"
            },
            "wouldClick": {
                N: "2"
            },
            "ratherClick": {
                N: "2"
            }
        },
        TableName: "Would-You-Rather"
    };
    dynamodb.putItem(params, function(err, data) {
        if (err) {
            console.log(err);
            callback(err);
        } else {
            console.log(data);
            callback(null, data);
        }
    });
};
回答如下:

它不是开箱即用的。如果您想使用数字PK,则可以利用以下方法:

client.update_item(
      TableName='JiraTable', Key={
         'PK': { 'S': 'PROJECT#my-project'
         'SK': { 'S': 'PROJECT#my-project' }
    }, }
  UpdateExpression="SET #count = #count + :incr",
  ExpressionAttributeNames={ "#count": "IssueCount", }, 
  ExpressionAttributeValues={
    ":incr": { "N": "1" } 
  },
  ReturnValues='UPDATED_NEW'
)

current_count = resp['Attributes']['IssueCount']['N']

resp = client.put_item(
  TableName='JiraTable',
  Item={
    'PK': { 'S': 'PROJECT#my-project' },
    'SK': { 'S': f"ISSUE#{current_count}"},
    'IssueTitle': {'S':'Build DynamoDB data model'}
  }
)

如果您确实要使用UUID,那么您确实可以确定,我建议您KSUID。 KSUID是唯一的标识符,在开头包含时间戳。这允许按时间顺序排列以及唯一性。

尽管如此,您是否真的要使用这种类型的数据作为分区键?您应该利用一些更具信息性的数据(例如电子邮件),否则您将丢失对访问模式有用的索引。

更多推荐

DynamoDB是否可以生成唯一的自动ID?

本文发布于:2024-05-07 06:03:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754678.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:DynamoDB   ID

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!