簡體   English   中英

Amazons dynamodb(通過aws sdk)有一個很好的對象映射器可以在nodejs中使用嗎?

[英]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對象/從標准Ja​​vaScript對象轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM