web-dev-qa-db-fra.com

Existe-t-il un bon mappeur d'objets pour Amazons dynamodb (via aws sdk) pouvant être utilisé dans nodejs?

Peut-être que la question ne s’applique pas à dynamoDB car elle n’est pas relationnelle. Cependant, je recherche un bon mappeur d'objets qui puisse être utilisé dans nodejs et aws sdk pour mapper les classes de modèle existantes dans des tables dynamoDB. Quelqu'un at-il une expérience de ce problème ou de cette question ou avez-vous utilisé un tel module ou une telle bibliothèque?

26
Fazi

Si vous recherchez un schéma: 

Si vous cherchez quelque chose pour lancer des objets javascript (même des graphiques circulaires) à:

dyngodb a un support expérimental pour la recherche en texte intégral et transactions aussi.

Les deux sont basés sur aws-sdk.

27
aaaristo

Il faut également prendre en considération les simples marshallers, qui traduisent simplement entre le format dynamoDB et les objets js classiques ou JSON.

DynamoDb-Data-Types
https://github.com/kayomarz/dynamodb-data-types
https://www.npmjs.com/package/dynamodb-data-types

"Cet utilitaire aide à représenter les types de données AWS DynamoDb. Il mappe (assemble) les données JavaScript dans le format requis par DynamoDb."

dynamoDb-marshaler
https://github.com/CascadeEnergy/dynamoDb-marshalerhttps://www.npmjs.com/package/dynamodb-marshaler

"Traduit des objets javascript sains (et JSON) au format DynamoDb et vice versa." [ne supporte pas le type B.]

Mise à jour 2016-06:
Je viens de découvrir que le kit SDK AWS le fait maintenant pour vous. Leur documentation n’est que partiellement convertie, je suppose donc qu’il s’agit d’un ajout récent. Lisez à propos de il ici .

Mais ces marshallers sont toujours utiles car, dans certaines circonstances, vous ne pouvez pas utiliser le nouveau client de document, par exemple. lors du traitement d'un flux dynamoDB.

6
Tom

Vous pouvez également essayer: https://dynamoosejs.com/ . Il est à nouveau inspiré par la mangouste.

2
Hexy

Après avoir regardé tous les messages que j'ai atterri sur https://github.com/awspilot/dynamodb-oop

Cela ne cache pas l'API, mais l'enveloppe simplement d'une manière agréable et fluide avec des promesses même et vous injectez votre version de l'aws-sdk. Cela ressemble à dynamodb-data-types mais englobe aussi les méthodes (pas seulement les types de données).

Bonus supplémentaire, le même auteur a https://github.com/awspilot/dynamodb-sql N'a pas utilisé le wrapper SQL mais je peux voir comment certaines personnes peuvent préférer cela. 

Dynamoose est évidemment inspiré par la mangouste et constitue un bon choix si vous avez un schéma bien défini et/ou si vous souhaitez vous abstenir des détails de DynamoDB.

1
FuryVII

Si vous utilisez TypeScript, dynamo-easy pourrait être une bonne option. Ajoutez simplement des décorateurs à votre modèle et commencez à l’utiliser.

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))

Il utilise le sdk AWS DynamoDB mais gère le mappage entre les types JS et DynamoDB et fournit une API simple à utiliser, fluide.

divulgation complète: je suis l'un des auteurs de cette bibliothèque

1
wittwermic

Avez-vous vu dynasaur ? Il semble que ce soit le genre de chose que vous recherchez, mais je ne l'ai pas utilisé moi-même. Il y a aussi dynamodb-data-types qui n'est pas un ORM, mais facilite la conversion vers/à partir d'objets JavaScript standard.

0
David Yanacek