Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon dynamodb Dynamodb:使用AttributeType映射、列表、JSON和CreateTable在中创建一个表_Amazon Dynamodb - Fatal编程技术网

Amazon dynamodb Dynamodb:使用AttributeType映射、列表、JSON和CreateTable在中创建一个表

Amazon dynamodb Dynamodb:使用AttributeType映射、列表、JSON和CreateTable在中创建一个表,amazon-dynamodb,Amazon Dynamodb,如何在DyanamoDB中创建带有AttributeType集、Map或JSON的表。我不想通过插入(PutItem)或更新数据来创建表结构,因为我需要创建一个包含映射、列表或JSON属性的索引。我需要在创建时(CreateTable)执行此操作。我还更喜欢使用AWS CLI。下面是一个示例: { TableName : "Music", KeySchema: [ { AttributeName: "Artist", KeyType: "

如何在DyanamoDB中创建带有AttributeType集、Map或JSON的表。我不想通过插入(PutItem)或更新数据来创建表结构,因为我需要创建一个包含映射、列表或JSON属性的索引。我需要在创建时(CreateTable)执行此操作。我还更喜欢使用AWS CLI。下面是一个示例:

{
TableName : "Music",
KeySchema: [       
    { 
        AttributeName: "Artist", 
        KeyType: "HASH", //Partition key
    }
],
AttributeDefinitions: [
    { 
        AttributeName: "Artist", 
        AttributeType: "S" 
    },
    { 
        AttributeName: "instruments" 
        AttributeType: // Map or List or JSON type 
    }

],
。。。
}

创建DynamoDB表时,只能定义作为键定义一部分的属性。换句话说,只有在创建DynamoDB表时才能定义散列键和排序键属性。哈希和排序键属性必须是标量属性

文档和集合数据类型不能是键属性的一部分。此外,不能对这些属性类型创建索引

标量类型–标量类型只能表示一个值。这个 标量类型包括数字、字符串、二进制、布尔和null

文档类型–文档类型可以表示复杂的结构 具有嵌套属性,如JSON文档中的属性。这个 文档类型为列表和映射

集合类型–集合类型可以表示多个标量值。布景 类型有字符串集、数字集和二进制集


嗨,谢谢你,安瑟。可以使用AttributeDefinition(例如在java中)新建AttributeDefinition(“year”,ScalarAttributeType.N),新建AttributeDefinition(“title”,ScalarAttributeType.S))创建表属性。此外,我还讨论了使用标量字段以及投影中的Map、List和JSON字段创建索引。不在索引字段中。它们是关键属性。请参阅您已经使用了KeySchemaElement和键类型哈希和分区。如果尝试在键定义之外添加第三个属性,则会得到error.Ok。事实确实如此。Thankso这意味着您需要先插入数据,然后才能创建索引?不,您也可以在创建表的同时创建索引。若索引中需要任何其他属性(主表中的非键属性),则可以定义这些属性。你不会因此而出错。如果答案有用,您愿意接受吗?如果您不能接受,那么唯一有效的属性类型是S(字符串)、N(数字)和B(inary)