簡體   English   中英

如何在具有GSI條件的dynamodb中保存項目?

[英]How to save Item in dynamodb with GSI condition?

我有一個dynamodb表,該表具有帶有范圍鍵(email,hashedPassword)的全局二級索引。 如果電子郵件不重復,我想保存一個項目,我使用attribute_not_exists但是它不起作用,我還使用了:

ConditionExpression: "#email <> :email",
ExpressionAttributeNames: {"#email": "email"},
ExpressionAttributeValues: {":email": userInfo.email}

沒有成功。

誰能幫我,

謝謝。

DynamoDB的條件表達式僅適用於正在使用的項目,而不適用於所有項目。

換句話說,條件表達式不會針對其他項目進行評估。

例如,如果您要創建一個新項目,則僅當您使用主鍵(如果有分區鍵+排序鍵)作為唯一約束時,才可以強制執行電子郵件約束。

您有一些選擇:

  • 在插入之前執行讀取。 這不會保證電子郵件的唯一性,但是應該捕獲很多重復項。
  • 使用電子郵件作為主鍵。
  • 插入后執行一致的讀取,這將回滾創建

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM