2015-10-05 11 views
6

Hier ist mein Code.
Ich möchte JSON in asset_data Spalte einfügen. ich benutze aws sdk. Es sagt, dass aws sdk jetzt Unterstützung für json hat. http://aws.amazon.com/releasenotes/SDK/JavaScript/1691866671551861Wie json in dynamodb einfügen

var asset_data = { 
    "name": "name" + i, 
    "contentUrl": "http://www.hdwallpapersimages.com/nature-beauty-desktop-images/94892/", 
    "size": 300, 
    "headline": "headline", 
    "description": "assetUrl reference for the creator", 
    "encodingFormat": 'jpeg' 
    }; 

    var params = { 
    TableName: 'xyz', 
    Item: { // a map of attribute name to AttributeValue 
     "asset_id": {S: "asset" + i}, 
     "hit_id": {S: "0"}, 
     "created_date": {"S": Date.now().toString()}, 
     "status": {N: "0"}, 
     "operation": {S: "image_tagging"}, 
     "asset_data": {L: asset_data}, 
     "source": {S: "DAM"}, 
     "completed_date": {S: Date.now().toString()}, 
     "response_data": {S: "taged value"} 
     // more attributes... 
    }, 

    ReturnValues: 'NONE', // optional (NONE | ALL_OLD) 
    ReturnConsumedCapacity: 'NONE', // optional (NONE | TOTAL | INDEXES) 
    ReturnItemCollectionMetrics: 'NONE' // optional (NONE | SIZE) 
    }; 

    db.putItem(params, function (err, data) { 
    if (err) console.log(err); // an error occurred 
    else console.log("inserted..."); // successful response 
    }); 

Antwort

7

können Sie das DynamoDB Document Client SDK verwenden:

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

Das Dokument Client vereinfacht mit Artikel im Amazon DynamoDB durch Abstrahieren entfernt den Begriff der Attributwerte arbeiten. Diese Abstraktion kommentiert native JavaScript-Typen, die als Eingabeparameter bereitgestellt werden, wie und konvertiert annotierte Antwortdaten in native JavaScript-Typen.

Für Ihren Fall speziell auf die Karte schauen Attributwert (M) als MapAttribute im Beispiel unten von der offiziellen Dokumentation extrahiert weitergegeben werden. Das Document Client API kümmert sich um die richtige Rangierung/unmarshalling zwischen den Javascript und DynamoDB Typen (was bedeutet, dass Sie die Attribute Values (S,N,L,...) nicht angeben müssen, wie es erforderlich ist, wenn das nicht-Dokument auf Basis SDK):

var params = { 
    TableName = 'Table', 
    Item: { 
    HashKey: 'haskey', 
    NumAttribute: 1, 
    BoolAttribute: true, 
    ListAttribute: [1, 'two', false], 
    MapAttribute: { foo: 'bar'}, 
    NullAttribute: null 
    } 
}; 

var docClient = new AWS.DynamoDB.DocumentClient(); 

docClient.put(params, function(err, data) { 
    if (err) console.log(err); 
    else console.log(data); 
}); 
+1

Gibt es eine Möglichkeit, diese DocumentClient() -Dinge von CLI zu verwenden, um einen Put-Artikel zu erstellen? Kann es nicht in der Dokumentation sehen. Danke! – Gopala

Verwandte Themen