有和/或没有类型的 AWS DynamoDB 数据?

2024-03-02

我正在使用aws-sdk让 NodeJS 与 DynamoDB 表进行交互。这是我第一次了解 DynamoDB。

当使用像这样的调用时getItem() or updateItem(),数据结构包括类型,如下所示:

{
  'a': { S: 'My string' }
}

有没有什么方法可以在没有类型的情况下传递和接收这些对象?所以...

{
  'a': 'My string'
}

或者,任何已编写的辅助函数可以将对象与此格式相互转换......?

const data = dbToObj({ 'a': { S: 'My string' } })
// { 'a': 'My string' }

因此,我可以在填充调用参数时转换为它,并在接收数据时从它转换。

尝试避免访问我的数据,例如:

const myData = data.Item.something.M.somethinElse.M.qwerty.S

我知道我可以自己写一些东西,只是想知道是否有人知道已经可用的功能/选项可以做到这一点。我找不到任何。


发现这个:

  • https://github.com/kayomarz/dynamodb-data-types https://github.com/kayomarz/dynamodb-data-types
  • https://www.npmjs.com/package/dynamodb-data-types https://www.npmjs.com/package/dynamodb-data-types

正是我正在寻找的东西。

安装:npm i dynamodb-data-types

提供wrap({ 'a': 'My string' }) and unwrap({ 'a': { S: 'My string' } })用于与普通对象进行转换的方法。

UPDATE

我现在也发现了这个:AWS.DynamoDB.DocumentClient http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html,这是aws-sdk.

文档客户端通过抽象属性值的概念,简化了 Amazon DynamoDB 中项目的使用。此抽象注释作为输入参数提供的本机 JavaScript 类型,并将带注释的响应数据转换为本机 JavaScript 类型。

UPDATE 2

亚马逊正在他们的领导下开展这项工作awslabsgithub页面:

Amazon DynamoDB 自动编组器 https://github.com/awslabs/dynamodb-data-mapper-js/tree/master/packages/dynamodb-auto-marshaller

该库提供了一个 Marshaller 类,可将本机 JavaScript 值转换为 DynamoDB AttributeValues,然后再转换回来。它设计用于与集合、映射和迭代等 ES6 功能配合使用,并且可以配置为支持仅由 JavaScript 支持的数据类型(例如空二进制缓冲区)或 Amazon DynamoDB(例如任意大小的数字),并且需要进行最小的权衡。

这是他们的一部分适用于 JavaScript 的 DynamoDB DataMapper https://github.com/awslabs/dynamodb-data-mapper-js包裹。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有和/或没有类型的 AWS DynamoDB 数据? 的相关文章

随机推荐