2017-04-12 14 views
0
Record1: [{ 
    "business_id": 2, 
    "form_id": 1, 
    "forms": { 
     "v2": { 
      "id": "f522", 
      "is_deleted": 0, 
      "title": "Form 1" 
     }, 
     "v3": { 
      "id": "f8b6", 
      "is_deleted": 0, 
      "title": "Form 2" 
     }, 
     "v1": { 
      "id": "fw56", 
      "is_deleted": 0, 
      "title": "Form 3" 
     }, 
     "v5": { 
      "id": "fw56", 
      "is_deleted": 0, 
      "title": "Form 3" 
     }, 
     "v4": { 
      "id": "fw56", 
      "is_deleted": 0, 
      "title": "Form 3" 
     } 
    } 
}] 

我打算在發電機Db表中添加上面的記錄。我將在表單對象中添加映射。我已按照以下順序添加了映射值v2,v3,v1,v5,v4。但它按照v1,v2,v3,v4,v5的順序存儲在發電機DB中。 我不想更改映射順序。請建議。當我添加映射對象在發電機Db,爲什麼它的順序會自動改變?

+0

我要在發電機db表上面添加記錄。我將在表單對象中添加映射。我已按照以下順序添加了映射值v2,v3,v1,v5,v4。但它按照v1,v2,v3,v4,v5的順序存儲在發電機DB中。我不想改變映射順序。請建議。 –

回答

0

問題是您的forms屬性有Map類型,它不保留項目的順序。

DynamoDB docs

地圖類型屬性可存儲的名稱 - 值 對的無序集合。

爲了保護子項的順序forms容器在你的情況,我會屬性轉換爲List,像這樣:

Record1: { 
    "business_id": 2, 
    "form_id": 1, 
    "forms": [ 
     {"formKey": "v2", "id": "f522", "is_deleted": 0, "title": "Form 1"}, 
     {"formKey": "v3", "id": "f8b6", "is_deleted": 0, "title": "Form 2"}, 
     {"formKey": "v1", "id": "fw56", "is_deleted": 0, "title": "Form 3"}, 
     {"formKey": "v5", "id": "fw56", "is_deleted": 0, "title": "Form 3"}, 
     {"formKey": "v4", "id": "fw56", "is_deleted": 0, "title": "Form 3"}  
    ] 
} 
相關問題