当前位置: 首页 > 知识库问答 >
问题:

DynamoDB with begins\u with ConditionalExpression

公孙阳羽
2023-03-14

给定以下代码,如果给定表的排序键没有以“account\uu”开头的排序键,我希望防止重复:

 db.put({
            TableName: process.env.TABLE_NAME,
            ConditionExpression: "NOT begins_with(SK,account_)",
            Item: account
        },function(err,data) {
            if(err) {
                callback(err,null);
            } else {
                callback(null,done(err,data));
            }
        }); 


Here's the table format
--------------------------------------
PK               | SK            | Attributes
user1@domain.com | account_123094| ...
user1@domain.com | account_239123| ... <-- ConditionalExpression should prevent
user2@domain.net | account_993422| ... <-- ConditionalExpression should allow
--------------------------------------

如上所述,如果已经存在PK,我需要防止重复,或者更具体地说,如果PK和SK不以“account\uu0”开头,我需要防止重复。无论我尝试什么,我都会不断得到重复的PK记录。

共有1个答案

阎慈
2023-03-14

如果您的用例是只有一个帐户,那么您的sk应该是帐户,而不是帐户{someNumber}

对于您使用的结构,如果在执行put之前检查是否存在account\u*的实体,然后执行put调用。但这也不足以满足给定的条件。(可以有两个人同时进行put呼叫)

 类似资料:

相关问答

相关文章

相关阅读