[英]Is there a good object mapper for Amazons dynamodb(through aws sdk) which can be used in nodejs?
也许这个问题不适用于dynamoDB,因为它不是关系型Db。 但是,我正在寻找一个好的对象映射器,它可以在nodejs和aws sdk中用于将现有的模型类映射到dynamoDB表。 有没有人有这个问题/问题的经验,或者您是否使用过这样的模块/库?
如果您正在寻找架构:
如果您正在寻找将javascript对象(甚至是圆形图形)抛出到的东西:
dyngodb也支持全文搜索和交易 。
两者都基于aws-sdk。
另外值得考虑的是简单的marshallers,它只是在dynamoDB格式和常规js对象或JSON之间进行转换。
DynamoDb-数据类型
https://github.com/kayomarz/dynamodb-data-types
https://www.npmjs.com/package/dynamodb-data-types
“此实用程序有助于表示AWS DynamoDb数据类型。它将JavaScript数据映射(marshalls)为DynamoDb所需的格式。”
dynamoDb-封送
https://github.com/CascadeEnergy/dynamoDb-marshaler https://www.npmjs.com/package/dynamodb-marshaler
“将理智的javascript对象(和JSON)转换为DynamoDb格式,反之亦然。” [不支持B类型。]
2016-06更新 :
刚发现AWS SDK现在为您执行此操作。 他们的文档只是部分转换,所以我想这是最近添加的。 在这里阅读它 。
但是这些marshallers仍然有用,因为在某些情况下你不能使用新的文档客户端,例如。 处理dynamoDB流时。
您也可以尝试: https : //dynamoosejs.com/ 。 它再次受到猫鼬的启发。
如果您使用的是Typescript,则dynamo-easy可能是一个不错的选择。 只需在模型中添加一些装饰器并开始使用它。
import { Model, PartitionKey, DynamoStore } from '@shiftcoders/dynamo-easy'
@Model()
export class Person {
@PartitionKey()
id: string
name: string
yearOfBirth: number
}
const personStore = new DynamoStore(Person)
personStore
.scan()
.whereAttribute('yearOfBirth').equals(1958)
.exec()
.then(res => console.log('ALL items with yearOfBirth == 1958', res))
它使用AWS DynamoDB sdk,但负责JS和DynamoDB类型之间的映射,并提供简单易用的流畅API。
完全披露:我是这个图书馆的作者之一
查看了所有帖子后,我登陆https://github.com/awspilot/dynamodb-oop
它不会隐藏API,而只是以一种漂亮,流畅的方式包装它甚至承诺你注入你的版本的aws-sdk。 它类似于dynamodb-data-types,但也包装了方法(不仅仅是数据类型)。
额外的奖金,同一作者有https://github.com/awspilot/dynamodb-sql没有使用sql包装,但我可以看到一些人可能更喜欢这样。
Dynamoose显然受到了猫鼬的启发,如果你有一个明确定义的架构和/或想要从DynamoDB细节中抽象出来,那么它是一个很好的选择。
你见过dynasaur吗? 它似乎是你正在寻找的东西,但我自己没有使用它。 还有dynamodb-data-types ,它不是ORM,但可以很容易地转换为标准JavaScript对象/从标准JavaScript对象转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.