2017-04-12 5 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"}  
    ] 
} 
関連する問題