2017-10-21 3 views
0

Ich habe eine Anfrage des folgenden JSON-Formats:Speicher JSON Anfrage als Artikel in DynamoDB

{ 
"profile": { 
      "created": 1505202655, 
      "createdBy": "abc", 
      "updated": 1505202655, 
      "updatedBy": "xyz" 
      }, 
"likesId": [ 
      "0010127916" 
      ], 
"icon": null, 
"Attributes": { 
       "backgroundColor": "#FFFFFF", 
       "logo": "images/Logos/P0010127916.jpg", 
       "textColor": "#000000" 
       }, 
"profileId": "PACYG0010916", 
"restrictions": { 
       "clients": [ 
          "Android", 
          "SmartTv" 
          ], 
       "UserTypes": [ 
           "user1", 
           "user2" 
          ], 
       "periodEnd": 1512978849, 
       "periodStart": 1505202849 
       }, 

} 

Ich versuche, das über JSON-Request-Objekt in der DynamoDB Tabelle mit putItem zu speichern. Jedoch bin ich in einigen Ausgaben, die wie folgt stecken:

  • Kann ich diese gesamte JSON-Anfrage wie es ist (ohne doppelte Anführungszeichen) in Form von Element in dynamodb Tabelle speichern?
  • Im Falle von LikesId und Attribute Ich speichere sie als eine Liste und Karte mit Hilfe von. WithList und. WithMap Methoden, aber im Falle von Profil habe ich es als POJO, die 4 Staaten hat, wie kann ich Speichern Sie dieses Objekt mit dem putItem, da ich keine Methode zum Speichern von Objekten wie dieser gefunden habe, da wir Methoden für Strings, Zahlen und andere Datentypen haben, wie kann ich mein eigenes Objekt speichern?
  • Jede Art von Anleitung wird sehr geschätzt werden, da ich DynamoDb neu bin und es durch das Ausführen von POC erlernt habe.

    Antwort

    -1

    Sie sollten in der Lage sein, es zu sparen ganz einfach mit der DocumentClient Klasse:

    http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#put-property

    var params = { 
        TableName : 'Table', 
        Item: item 
    }; 
    
    var documentClient = new AWS.DynamoDB.DocumentClient(); 
    
    documentClient.put(params, function(err, data) { 
        if (err) console.log(err); 
        else console.log(data); 
    }); 
    

    Wo item das Objekt aus Ihrer ursprünglichen Frage ist

    +0

    was ich versuche unter fragen var params, im Item-Attribut Wie kann ich meinen eigenen erstellten Datentyp angeben, dh meine eigene Klasse anstelle von vordefinierten Datentypen. –

    +0

    Sie können nicht wirklich - bis zu einem gewissen Grad DynamoDB ist schemalos. Es hat wirklich kein Klassenkonzept. Sie müssten es als Karte speichern – user184994

    +0

    Ok, aber das Speichern als Map hat ein Problem, in meinem Profilattribut hat diese Map 2 Arten von Werten, sowohl String als auch Long. Daher bevorzugte ich Map nicht, da in Map Object nicht von dynamoDb identifiziert wird. –

    Verwandte Themen