🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

dynamoose

Package Overview
Dependencies
Maintainers
2
Versions
126
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dynamoose

Dynamoose is a modeling tool for Amazon's DynamoDB (inspired by Mongoose)

4.0.4
latest
Source
npm
Version published
Weekly downloads
118K
-1.64%
Maintainers
2
Weekly downloads
 
Created
Source

Dynamoose

npm License npm Downloads Sponsor Dynamoose CI Coverage Status Crowdin Translation Status Slack Chat Contact Mastodon Follow Twitter

Dynamoose is a modeling tool for Amazon's DynamoDB (inspired by Mongoose).

Dynamoose is Sponsored by Dynobase

Dynobase helps you accelerate your DynamoDB workflow with code generation, faster data exploration, bookmarks and more: https://dynobase.dev/

Getting Started

Description

Dynamoose is a modeling tool for Amazon's DynamoDB. Dynamoose is heavily inspired by Mongoose, which means if you are coming from Mongoose the syntax will be very familiar.

Key Features

  • Type safety
  • High level API
  • Easy to use syntax
  • DynamoDB Single Table Design Support
  • Ability to transform data before saving or retrieving items
  • Strict data modeling (validation, required attributes, and more)
  • Support for DynamoDB Transactions
  • Powerful Conditional/Filtering Support
  • Callback & Promise support
  • AWS Multi-region support

Example

import * as dynamoose from "dynamoose";
import * as crypto from "crypto";

// Create a new Dynamoose model
const Book = dynamoose.model("Book", {
	"id": {
		"type": String,
		"hashKey": true,
		"default": () => crypto.randomUUID()
	},
	"title": {
		"type": String,
		"required": true
	},
	"author": {
		"type": String,
		"required": true
	},
	"publishedDate": {
		"type": Date,
		"required": true
	},
	"genre": {
		"type": String,
		"required": true,
		"enum": [
			"fantasy",
			"sci-fi",
			"mystery",
			"thriller",
			"romance",
			"non-fiction",
			"horror",
			"biography",
			"autobiography",
			"poetry",
			"children's",
			"young-adult",
			"other"
		]
	},
	"summary": String,
	"pageCount": Number
});

// Add a new item to the Book table
const newBook = new Book({
	"title": "Harry Potter and the Philosopher's Stone",
	"author": "J.K. Rowling",
	"publishedDate": new Date("1997-06-26"),
	"genre": "fantasy",
	"summary": "The story of a young wizard who discovers he is a wizard and attends a magical school.",
	"pageCount": 223
});
await newBook.save();

// Retrieve all items from the Book table
const allBooks = await Book.scan().exec();
console.log(allBooks);

Resources

General

Social

Branch Strategy

Below you will find the current branch strategy for the project. Work taking place on the branches listed below might be further ahead than the versions on NPM. All documentation links found below will also be reflective of the published version on NPM. If you would like to live dangerously and run non-released versions, you can run npm install dynamoose/dynamoose#BRANCH (replacing BRANCH with the branch listed below). You will also find the most up-to-date documentation in the docs folder of the branch.

BranchVersionNPM TagLinks
main4.x.x- Documentation
v33.3.x- Documentation
v3.3.0 (tag)3.3.0latest-3- Documentation
v22.8.x- Documentation
v2.8.8 (tag)2.8.8latest-2- Documentation

FAQs

Package last updated on 06 Apr 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts