Может быть, вопрос не относится к dynamoDB из-за того, что он не является реляционным Db. Тем не менее, я ищу хороший объект mapper, который можно использовать в nodejs и aws sdk для сопоставления существующих классов моделей с таблицами dynamoDB. Кто-нибудь имеет опыт работы с этой проблемой/вопросом, или вы использовали такой модуль/библиотеку?
Есть ли хороший объект mapper для амазонок dynamodb (через aws sdk), который можно использовать в nodejs?
Ответ 1
Если вы ищете схему:
- https://github.com/clarkie/dynogels (хорошо поддерживается разветвлено из vogels, который был оставлен)
- https://github.com/automategreen/dynamoose (вдохновлено Mongoose)
Если вы ищете что-то, чтобы бросать javascript-объекты (даже круговые графы) в:
- https://github.com/aaaristo/dyngodb (альфа)
- https://github.com/aaaristo/angular-gson-express-dyngodb
dyngodb имеет экспериментальную поддержку полнотекстового поиска и transactions.
Оба основаны на aws-sdk.
Ответ 2
Также стоит рассмотреть простые маршаллеры, которые просто переводят между форматом dynamoDB и обычными js-объектами или JSON.
DynamoDb-типы данных
https://github.com/kayomarz/dynamodb-data-types
https://www.npmjs.com/package/dynamodb-data-types
"Эта утилита помогает представлять типы данных AWS DynamoDb. Она отображает (marshalls) данные JavaScript в формат, необходимый DynamoDb."
dynamoDb-упаковщик
https://github.com/CascadeEnergy/dynamoDb-marshaler
https://www.npmjs.com/package/dynamodb-marshaler
"Переводит разумные объекты javascript (и JSON) в формат DynamoDb и наоборот." [не поддерживает тип B.]
Обновление 2016-06:
Просто обнаружил, что теперь AWS SDK делает это за вас. Их документация только частично преобразована, поэтому я думаю, что это недавнее дополнение. Читайте о здесь.
Но эти маршаллеры по-прежнему полезны, потому что есть ситуации, когда вы не можете использовать новый клиент документа, например. при обработке потока dynamoDB.
Ответ 3
Вы видели dynasaur? Кажется, это тот тип вещей, который вы ищете, но я не использовал его сам. Там также dynamodb-data-types, который не является ORM, но упрощает преобразование в/из стандартных объектов JavaScript.
Ответ 4
Вы также можете попробовать: https://dynamoosejs.com/. Это снова вдохновлено мангустами.
Ответ 5
После просмотра всех сообщений я приземлился на https://github.com/awspilot/dynamodb-oop
Он не скрывает API, но вместо этого просто обтекает его в хорошем, свободном режиме с помощью promises, и вы вводите свою версию aws-sdk. Он похож на типы данных dynamodb-данных, но также также обертывает методы (а не только типы данных).
Дополнительный бонус, тот же автор https://github.com/awspilot/dynamodb-sql Не использовал оболочку sql, но я вижу, как некоторые люди могут предпочесть,
Dynamoose, очевидно, вдохновлен мангустами и является хорошим выбором, если у вас есть четко определенная схема и/или вы хотите отвлечься от деталей DynamoDB.