Amazon dynamodb 了解DynamoDB键

Amazon dynamodb 了解DynamoDB键,amazon-dynamodb,primary-key,Amazon Dynamodb,Primary Key,我已经阅读了DynamoDB文档。我的场景与指定任何字段作为检索键没有什么不同。我的数据看起来像 RandomID(Unique) Category date_created isUsed ------------------------------------------------------ 12355 ABC 03/02 false 14682 ABC 03/02

我已经阅读了DynamoDB文档。我的场景与指定任何字段作为检索键没有什么不同。我的数据看起来像

RandomID(Unique)  Category  date_created   isUsed
------------------------------------------------------
12355              ABC      03/02            false
14682              ABC      03/02            false
19684              ABC      03/20            false
12357              BCA      03/04            true
16924              ABC      03/14            true
12352              ABC      03/02            true
32358              BCA      03/14            false
RandomId:表中唯一需要检索的唯一内容

类别:每个类别可以有任意数量的已分配和未分配的随机ID

创建日期:创建随机ID时

已使用:是否已使用随机ID

我想为单个类别获取2个未使用的(isUsed='false')随机ID(ifexists)? 示例:如果我查询我的表“为类别“ABC”提供两个未使用的ID”,那么我应该得到其中任何一个结果

{12355, 14682}
{14682, 19684}
{12355, 19684}
我的问题是: 1.我的哈希键是什么?因为这个表中唯一独特的东西就是我的随机ID

  • 考虑将“isUsed”保留为排序键,但布尔值不被接受为排序键?在Dyanmo中创建示例表时,我找不到类别

  • 我的钥匙是什么


  • 任何帮助都将不胜感激。

    您可以预先计算结果。与其使用布尔值isUsed,不如使用名为
    locationUsed
    的可选属性(字符串)并在首次使用随机ID时更新该项。如果使用分区键
    randomID
    和排序键
    locationUsed
    创建GSI,则此GSI将仅包含应用程序已使用的具有随机ID的项。您可以通过对随机id项使用条件更新来保护自己免受此GSI视图和基表之间的竞争条件的影响,特别是当属性不存在(locationUsed)时