给定以下代码,如果给定表的排序键没有以“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记录。
如果您的用例是只有一个帐户,那么您的sk应该是帐户,而不是
帐户{someNumber}
。
对于您使用的结构,如果在执行put之前检查是否存在account\u*的实体,然后执行put调用。但这也不足以满足给定的条件。(可以有两个人同时进行put呼叫)