web-dev-qa-db-ja.com

AWS SDK for Node.jsを使用してDynamoDBテーブルにアイテムを配置する

私はjavascriptとnode.jsに不慣れで、node.js SDKを介してAWS Dynamodbの既存のテーブルに新しいアイテムを配置する構文を理解できる人がいるかどうか疑問に思っていました。これが私が今まで持っているものです。私がやろうとしていることの例はありますか?誰かが私を正しい方向に向けることができれば、それは大いに感謝されます。

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

私はあなたの「ID」が数値であることを期待しています...

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

DynamoDBではデータ型を指定することに注意してください([〜#〜] n [〜#〜]"数値、[〜#〜] s [〜#〜]"文字列、[〜#〜] b [〜#〜]"バイナリ)テーブル作成時、主キーのみ(HashKeyまたはHashKey + RangeKey)。他のすべての列は、データ型を変えることができ、キーと値のペアとして見ることができます。したがって、DynamoDBが常にデータ型を項目属性でエンコードすることが不可欠です。

4
muhqu

Muhquの答えはうまくいかないと思います。属性の値は文字列である必要があると思います。

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

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

2
Ryan Zhou