DynamoDB是否支持在表的主键中使用其中一种set数据类型?

Hri*_*sto 5 amazon-dynamodb

我是CouchDB的忠实粉丝,我完全爱上了每个文档多次发出的地图函数.我想知道在DynamoDB中是否可以通过使用字符串或数字集类型作为散列和范围主键的一部分,作为散列或范围属性,可以实现略微相似的东西,以便可以查询相同的项目多种方式.

谢谢!

Ste*_*pel 7

有趣的问题 - 我担心代码检查和/或测试会有序,但我对此表示怀疑:

虽然Amazon DynamoDB数据类型支持字符串和数字集,而CreateTable的API 允许提交集合类型以及当然的AttributeType(毕竟它只是一个字符串参数),但没有任何概念,他们的样本都没有这和AWS管理控制台中的CreateTable UI同样明确地将类型限制为字符串或数字以用于散列和范围键属性(请参阅Amazon DynamoDB中的第一个图像- NoSQL方式的Internet规模数据存储).

认为有人在公告网络广播中提到他们是列出的主键概念开始的,但可能会考虑将来扩展这个(虽然我没有100%肯定地回忆这个).


更新:检查/测试结果

目前确实不支持将设置数据表作为主键,请参阅以下API文档class KeySchemaElement:

/**
 * Sets the value of the AttributeType property for this object.
 * <p>
 * <b>Constraints:</b><br/>
 * <b>Allowed Values: </b>S, N
 *
 * @param attributeType The new value for the AttributeType property for this object.
 *
 * @see ScalarAttributeType
 */
public void setAttributeType(String attributeType) {
    this.attributeType = attributeType;
}
Run Code Online (Sandbox Code Playgroud)

修改表实施例相应地产生期望的异常:

信息:收到错误响应:状态代码:400,AWS服务:AmazonDynamoDB,AWS请求ID:XXXXXXXX,AWS错误代码:ValidationException,AWS错误消息:检测到1个验证错误:'keySchema.hashKeyElement.attributeType'处的值'SS'失败满足约束:成员必须满足枚举值集:[N,S]无法创建表TestTable

  • 只是一个更新,即散列,范围或任何类型的索引现在都不能是List或Map值 (2认同)