URLに対してのアクセス数を知るためにHASHキーがurlのテーブルを作成しました。項目にはnumを入れるというルールにしています。
URLをキーにアクセス数をカウントしたいので、レコードがあったら更新なかったら新規作成を行いたいのでupdateメソッドを使います。その際、レコードがない場合はnumの値が存在しない扱いになるのでif_not_exists
を使い初期値を設定してレコードが作成されるようにUpdateExpression
で設定しています(レコード作成時が1になるように:default
の値を0にしました)
'use strict';
const AWS = require('aws-sdk')
AWS.config.update({
region: 'ap-northeast-1',
endpoint: 'http://localhost:8000'
})
const docClient = new AWS.DynamoDB.DocumentClient()
const params = {
TableName: 'access',
Key: {
url: '/contents/123'
},
UpdateExpression: "set num = if_not_exists(num, :default) + :increment",
ExpressionAttributeValues:{
":default": 0,
":increment": 1
},
ReturnValues: "UPDATED_NEW"
}
docClient.update(params, (err, data) => {
if (err) {
console.log(err)
} else {
console.log(data)
}
})