2017-09-13 168 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