web-dev-qa-db-fra.com

Placer l'élément sur la table DynamoDB à l'aide d'AWS SDK for Node.js

Je suis nouveau sur javascript et node.js et je me demandais si quelqu'un pouvait m'aider à comprendre la syntaxe de la mise en place d'un nouvel élément sur une table existante sur AWS Dynamodb via leur SDK node.js. Voici ce que j'ai jusqu'à présent. Y a-t-il un exemple de ce que j'essaie de faire? Si quelqu'un pouvait m'orienter dans la bonne direction, ce serait très apprécié.

var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
AWS.config.update({region: 'us-east-1'});
var dynamodb = new AWS.DynamoDB();

var item = {
    // I need to put the an item with a the primary key of "id", and an attribute called "item"
    // I'm new to js and node.js, so if somebody could help me understand the documentation
    // http://docs.aws.Amazon.com/AWSJavaScriptSDK/latest/frames.html#!http%3A//docs.aws.Amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB_20120810.html
}

dynamodb.putItem({TableName: 'log_dev', Item: item}, function(err, data){
    if (err) {
    console.log(err); // an error occurred
    } else {
    console.log(data); // successful response
    }
});
17
yz10
dynamoDB.putItem(
{
    "TableName": "Table1",
    "Item": {
        "Color": {"S": "white"},
        "Name": {"S": "fancy vase"},
        "Weight": {"N": "2"},
        "LastName":{"S": "Kumar"}
    }
}, function(result) {
    result.on('data', function(chunk) {
        console.log("" + chunk);
    });
});
console.log("Items are succesfully ingested in table .................."); 
29
Anki007

Je m'attends à ce que votre "id" soit numérique ...

var item = {
    "id": {"N": 1234},
    "title": {"S": "Foobar"}
}

Notez qu'avec DynamoDB, vous spécifiez le type de données ( N "numérique, S " chaîne, B "binaire) lors de la création de la table, uniquement pour la clé primaire (HashKey ou HashKey + RangeKey). Toutes les autres colonnes peuvent varier dans leur type de données et peuvent être considérées comme des paires clé-valeur. Il est donc essentiel pour DynamoDB de toujours coder le type de données avec les attributs d'élément.

4
muhqu

Je ne pense pas que la réponse de muhqu fonctionne, je crois que la valeur de l'attribut doit être une chaîne.

var item = {
"id": {"N": "1234"},
"title": {"S": "Foobar"} }

http://docs.aws.Amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#putItem-property

2
Ryan Zhou