2017-10-21 21 views
0

J'ai une demande du format JSON suivant:Enregistrer JSON demande sous dans 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 
       }, 

} 

Je suis en train d'enregistrer la demande JSON ci-dessus objet dans la table DynamoDB en utilisant putItem. Cependant, je suis coincé dans certaines questions sont les suivantes:

  1. Puis-je stocker toute cette demande JSON en l'état (sans échapper des guillemets doubles) sous la forme d'élément dans la table DynamoDB?
  2. Dans le cas de j'aimeId et Attributs je les stocke comme une liste et une carte avec l'aide des méthodes .withList et .withMap respectivement, mais dans le cas de profil, je l'ai pris comme un POJO qui a 4 états, comment puis-je enregistrer cet objet avec le putItem comme je n'ai trouvé aucune méthode pour sauver des objets comme ceci, comme nous avons des méthodes pour la chaîne, les nombres et d'autres types de données, comment puis-je sauvegarder mon propre objet?

Tout type de guidage sera très apprécié car je suis nouveau à dynamoDb et l'apprentissage en faisant POC.

Répondre

-1

Vous devriez pouvoir enregistrer très facilement avec la classe DocumentClient:

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); 
}); 

item est l'objet de votre question initiale

+0

ce que je suis en train de poser est sous var params, dans l'attribut Item comment puis-je fournir mon propre type de données créé, c'est-à-dire ma propre classe au lieu de types de données prédéfinis. –

+0

Vous ne pouvez pas vraiment - dans une certaine mesure DynamoDB est sans schéma. Il n'a vraiment aucun concept de classe. Vous devez le stocker comme une carte – user184994

+0

Ok, mais le stocker comme une carte a un problème, dans mon attribut de profil cette carte aura 2 types de valeurs, à la fois String et Long. Donc, je ne préférais pas Map, comme dans Map L'objet n'est pas identifié par dynamoDb –