我试着使用Node.js连接DynamoDB

背景

由于第一次在工作中使用DynamoDB,我打算留下一些基本笔记,以作为自己的知识积累。

环境

    • node.js

 

    • DynamoDB

 

    Lambda

经历过的函数

注册

    put

参数

    • TableName: テーブル名

 

    Item: 登録対象
ex))
TableName: 'test-table',
Item: {
  'id': 1,
  'name': 'test',
}

获得

    get

参数

    • TableName: テーブル名

 

    Key: AttributeValueのカラム名(一般的なTableのprimary key)
ex))
TableName: 'test-table',
Key: {
  'id': 1
  'sort': 1
}

搜索

    scan

参数 (Can be translated as “parameter” in Chinese)

    • TableName: テーブル名

 

    • FilterExpression: SQLの条件式

 

    ExpressionAttributeValues: SQLの条件式に設定する値
ex))
TableName: 'test-table',
FilterExpression: 'created_at = :now',
ExpressionAttributeValues: {
  ':now': '2021-01-01 00:00:00'
}

删除

    delete

参数 (Parací、

    • TableName: テーブル名

 

    Key: AttributeValueのカラム名(一般的なTableのprimary key)
ex))
TableName: 'test-table',
Key: {
  'id': 1
}

迷住了的事情

    • 動作確認でListTablesを使ったが、廃止になっていた。。

 

    • https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/API_ListTables_v20111205.html

 

    • Scan関数1回で取得できる容量は最大1MB。最大容量以上のデータを取得する場合は複数回関数を呼び出さなければ正常な動作をしない

 

    • https://qiita.com/naoko_s/items/e88928a95bb7f76e1bf0

 

    Scan関数のFilterExpressionはScanで全件取得した後にFilterExpressionの条件でフィルタをかけるので、場合によっては期待通りの結果にならない場合があった。。

未来的挑战

    参考リンクに他の関数もあったので、使ってみようかな

请查看以下链接

    • https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html

 

    https://xp-cloud.jp/blog/2019/10/24/5698/
广告
将在 10 秒后关闭
bannerAds