A lightweight object modeling for DynamoDB inspired by Mongoose.
The default database operations of this package assumes single table design but all can be overridden by writing your own.
npm i @kdcio/ddbDefine database table name in environment variable.
In code:
process.env.DDB_TABLE='my-dynamodb-table';
or in serverless.yml:
provider: environment: DDB_TABLE: 'my-dynamodb-table'
or in package.json:
"scripts": { "start": "DDB_TABLE='my-dynamodb-table' node index.js" }
Note that table creation needs to be done outside this package to allow flexibility.
Define the fields of the document.
constfields={id: {required: true},name: {required: true},type: {required: true},};
Define primary and secondary keys
constpKey={pk: '{type}#{id}',sk: 'ANIMAL#{type}'};constsKey={pk2: 'ANIMAL',sk2: '{type}#{id}'};
Create schema
constschema=newDDB.Schema(fields,pKey,sKey);
Create class
constAnimal=DDB.model('Animal',schema);
Create an instance document from data object
constdog=newAnimal({id: 1,name: 'sparkle',type: 'dog'});awaitdog.save();
Check the tests folder for more examples.
This package uses debug.
To enable:
DEBUG=ddb:* node app.js