如何在 GSI 条件下在 dynamodb 中保存项目?

编程入门 行业动态 更新时间:2024-10-05 07:25:50

如何在 GSI 条件下在 dynamodb <a href=https://www.elefans.com/category/jswz/34/1504757.html style=中保存项目?"/>

如何在 GSI 条件下在 dynamodb 中保存项目?

我有一个 dynamodb 表,它有一个带范围键(电子邮件、hashedPassword)的全局二级索引。 如果电子邮件不重复,我想保存一个项目, 我用过

attribute_not_exists
但是没用,我也用过:

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

没有成功。

谁能帮帮我,

谢谢。

回答如下:

DynamoDB 的条件表达式仅适用于它正在处理的项目,而不是跨项目。

换句话说,条件表达式不会针对其他项目进行评估。

例如,如果您正在创建一个新项目,如果您使用主键(如果有分区 + 排序键)作为唯一约束,则只能强制执行电子邮件约束。

您有一些选择:

  • 插入前执行读取。这并不能保证电子邮件的唯一性,但应该可以捕获很多重复项。
  • 使用电子邮件作为主键。
  • 插入后执行一致性读取,回滚创建

HTH

更多推荐

如何在 GSI 条件下在 dynamodb 中保存项目?

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

发布评论

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

>www.elefans.com

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