2017-05-01 7 views
1

私はAWS dynamodb's DocumentClientのためのノードでは些細ではないアップサンプルの例を探しています。誰かが彼らのために働いていたサンプルを共有することはできますか?ダイナモ文書クライアントのアップサンプルの例は誰も提供できますか?

レコードの作成時にcreated_at、updated_at、およびidフィールドを設定する例を見ていきますが、レコードが見つかって更新されたときにのみupdated_atが設定されます。

答えて

1

これは目標を達成するはずです。私の謝罪、私は私の元の投稿であなたの基準を逃した。私はidがあなたのテーブルの鍵だと仮定しています。

'use strict'; 

var AWS = require('aws-sdk'); 
var ec2 = new AWS.EC2({ apiVersion: '2016-09-15' }); 
var ddb = new AWS.DynamoDB.DocumentClient(); 
AWS.config.region = 'us-east-1'; 

var ret = {}; 
const ddbTbl = 'table_name'; 

var date = new Date(); 
var dateAsIso = date.toISOString(); 

exports.handler = (event, context, callback) => { 
    var key = 'bar'; 
    var params = { 
     TableName: ddbTbl, 
     Key: { 
      "id": key 
     }, 
     UpdateExpression: "set #u = :t, #c = if_not_exists(#c, :t)", 
     ExpressionAttributeNames: { 
      "#u": "updated_at", 
      "#c": "created_at" 
     }, 
     ExpressionAttributeValues: { 
      ":t": dateAsIso 
     }, 
     ReturnValues: "UPDATED_NEW" 
    }; 
    ddb.update(params, function(err, data) { 
     if (err) { 
      console.log(err, err.stack); 
      ret.ddbUpdate = err; 
      callback(null, {success: false, message: ["ddb upsert failed"], payload: ret}); 
      // or use the regular callback for failures if you don't want to do your own envelope response 
     } else { 
      console.log(data); 
      ret.ddbUpdate = data; 
      callback(null, {success: true, message: ["ddb upsert succeeded"], payload: ret}); 
     } 
    }); 
}; 
+0

レコードの作成時にcreated_atフィールドを設定し、レコードがすでに存在する場合はupdated_atフィールドのみを設定しますか? – robertjewell

関連する問題