gpt4 book ai didi

javascript - 如何使用 GSI 条件在 dynamodb 中保存项目?

转载 作者:搜寻专家 更新时间:2023-11-01 00:37:05 27 4
gpt4 key购买 nike

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

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

没有成功。

谁能帮帮我,

谢谢。

最佳答案

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

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

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

您有一些选择:

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

HTH

关于javascript - 如何使用 GSI 条件在 dynamodb 中保存项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47760912/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com