2017-09-13 193 views
0

由于某种原因我想使用book.randomID作为使用java代码的亚马逊DynamoDB表中的关键。当我试图ID添加了一个新的领域名为“book.randomID”的项目使亚马逊dynamodb表book.randomID键

List<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); 
     keySchema.add(new KeySchemaElement().withAttributeName("conceptDetailInfo.conceptId").withKeyType(KeyType.HASH)); // Partition 

这里是JSON结构

{ 
    "_id":"123", 
    "book":{ 
     "chapters":{ 
     "chapterList":[ 
      { 
       "_id":"11310674", 
       "preferred":true, 
       "name":"1993" 
      } 
     ], 
     "count":1 
     }, 
     "randomID":"1234" 
    } 
} 

所以是有可能使用这些元素作为重点。如果是,我们如何才能将它用作密钥

回答

0

创建DynamoDB表时AWS将其限制为StringBinaryNumber类型。您的属性book.random似乎是String

只要它不是像ListMapSet其他data types你应该没问题。

只是要AWS控制台,并尝试它为我工作:

Table Books with nested Primary key book.randomId

+0

当我创建一个项目,我得到“book.randomID”单字段名(因为我已经在这个问题已经提到而是采用了字段 “randomID”,从 “书”)这样 '{ “_id”: “123”, “book.randomID”: “1234” “书”:{ “章”: “chapterList”:[ { “_id”:“11310674”, “优选的”:真, “名称”: “1993” } ], “计数”:1 }, “randomID”: “1234” } }' – Maria