web-dev-qa-db-ja.com

nodejsで使用できるAmazons dynamodb(aws sdk経由)に適したオブジェクトマッパーはありますか?

たぶん、この質問はリレーショナルDbではないため、dynamoDBには適用されません。ただし、nodejsおよびaws sdkで既存のモデルクラスをdynamoDBテーブルにマッピングできる優れたオブジェクトマッパーを探しています。誰もこの問題/質問の経験がありますか、またはそのようなモジュール/ライブラリを使用しましたか?

29
Fazi

スキーマを探している場合:

Javascriptオブジェクト(円グラフでも)をスローするものを探している場合:

dyngodbには全文検索の実験的サポートがあり、 transactions もサポートしています。

両方ともaws-sdkに基づいています。

29
aaaristo

また、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ストリームを処理するとき。

6
Tom

https://dynamoosejs.com/ を試すこともできます。またマングースに触発されています。

3
Hexy

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を提供します。

完全開示:私はこのライブラリの著者の一人です

2
wittwermic

私が上陸したすべての投稿を見た後 https://github.com/awspilot/dynamodb-oop

APIを非表示にしませんが、代わりに、約束でさえナイスで流fluentな方法でそれをラップし、aws-sdkのバージョンを注入します。 dynamodb-data-typesに似ていますが、メソッドも(データ型だけでなく)ラップします。

追加のボーナスとして、同じ著者が https://github.com/awspilot/dynamodb-sql sqlラッパーを使用していませんでしたが、一部の人々はそれを好むかもしれません。

Dynamooseは明らかにマングースに触発されており、明確に定義されたスキーマがある場合や、DynamoDBの詳細から抽象化する場合に適しています。

1
FuryVII

ダイナサウルス を見ましたか?それはあなたが探しているタイプのようですが、私はそれを自分で使用していません。 dynamodb-data-types もあります。これはORMではありませんが、標準のJavaScriptオブジェクトとの間で簡単に変換できます。

0
David Yanacek