たぶん、この質問はリレーショナルDbではないため、dynamoDBには適用されません。ただし、nodejsおよびaws sdkで既存のモデルクラスをdynamoDBテーブルにマッピングできる優れたオブジェクトマッパーを探しています。誰もこの問題/質問の経験がありますか、またはそのようなモジュール/ライブラリを使用しましたか?
スキーマを探している場合:
Javascriptオブジェクト(円グラフでも)をスローするものを探している場合:
dyngodbには全文検索の実験的サポートがあり、 transactions もサポートしています。
両方ともaws-sdkに基づいています。
また、dynamoDB形式と通常のjsオブジェクトまたはJSONとの間で変換する単純なマーシャラーも検討する価値があります。
DynamoDb-Data-Types
https://github.com/kayomarz/dynamodb-data-types
https://www.npmjs.com/package/dynamodb-data-types
「このユーティリティは、AWS DynamoDbデータ型を表すのに役立ちます。JavaScriptデータをDynamoDbが必要とする形式にマッピング(マーシャル)します。」
dynamoDb-marshaler
https://github.com/CascadeEnergy/dynamoDb-marshalerhttps://www.npmjs.com/package/dynamodb-marshaler
「正常なjavascriptオブジェクト(およびJSON)をDynamoDb形式に、またはその逆に変換します。」 [Bタイプはサポートしていません。]
2016-06を更新:
AWS SDKがこれを自動的に行うことを発見しました。彼らのドキュメントは部分的にしか変換されていないので、これは最近の追加だと思います。 it here について読んでください。
しかし、新しいドキュメントクライアントを使用できない状況があるため、これらのマーシャラーは依然として有用です。 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なAPIを提供します。
完全開示:私はこのライブラリの著者の一人です
私が上陸したすべての投稿を見た後 https://github.com/awspilot/dynamodb-oop
APIを非表示にしませんが、代わりに、約束でさえナイスで流fluentな方法でそれをラップし、aws-sdkのバージョンを注入します。 dynamodb-data-typesに似ていますが、メソッドも(データ型だけでなく)ラップします。
追加のボーナスとして、同じ著者が https://github.com/awspilot/dynamodb-sql sqlラッパーを使用していませんでしたが、一部の人々はそれを好むかもしれません。
Dynamooseは明らかにマングースに触発されており、明確に定義されたスキーマがある場合や、DynamoDBの詳細から抽象化する場合に適しています。
ダイナサウルス を見ましたか?それはあなたが探しているタイプのようですが、私はそれを自分で使用していません。 dynamodb-data-types もあります。これはORMではありませんが、標準のJavaScriptオブジェクトとの間で簡単に変換できます。