{"id":42668,"library":"dynongo","title":"Dynongo","description":"Version 0.19.0 (last release unknown, no recent updates). Provides a MongoDB-like query syntax for Amazon DynamoDB, including chaining methods like .find(), .where(), .select(), and .exec(). Supports table prefixing, connection to DynamoDB Local, retry mechanisms via p-retry, and TypeScript types. Differentiated by offering a familiar MongoDB-style API for DynamoDB, but has low activity and depends on the older aws-sdk v2.","status":"maintenance","version":"0.19.0","language":"javascript","source_language":"en","source_url":"https://github.com/SamVerschueren/dynongo","tags":["javascript","dynamodb","mongodb","mongo","mongoose","aws","database","nosql","typescript"],"install":[{"cmd":"npm install dynongo","lang":"bash","label":"npm"},{"cmd":"yarn add dynongo","lang":"bash","label":"yarn"},{"cmd":"pnpm add dynongo","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: required for all DynamoDB operations.","package":"aws-sdk","optional":false}],"imports":[{"note":"The package is primarily used via CommonJS require, but TypeScript can use default import.","wrong":"const dynongo = require('dynongo');","symbol":"default export","correct":"import dynongo from 'dynongo';"},{"note":"Connect is a method on the default export.","wrong":"","symbol":"connect","correct":"dynongo.connect({ region: 'us-east-1' });"},{"note":"Table method is lowercase 'table'. TypeScript types are available.","wrong":"const table = dynongo.Table('MyTable');","symbol":"table","correct":"const table = dynongo.table('MyTable');"},{"note":"rawTable is a separate method, not an option to table.","wrong":"const rawTable = dynongo.table('ExactTableName', true);","symbol":"rawTable","correct":"const rawTable = dynongo.rawTable('ExactTableName');"}],"quickstart":{"code":"import dynongo from 'dynongo';\n\ndynongo.connect({\n  region: process.env.REGION ?? 'us-east-1',\n  // credentials from env or IAM role\n});\n\nconst Employee = dynongo.table('Employee');\n\nEmployee\n  .find({})\n  .where({ Salary: { $gt: 3000 } })\n  .select('FirstName Name')\n  .exec()\n  .then(employees => {\n    console.log(employees);\n  })\n  .catch(err => {\n    console.error(err);\n  });","lang":"typescript","description":"Connects to DynamoDB (using environment variables for credentials), gets a prefixed table, and queries with MongoDB-like syntax."},"warnings":[{"fix":"Consider migrating to aws-sdk v3 or use a more actively maintained DynamoDB abstraction.","message":"Package uses aws-sdk v2, which is in maintenance mode. AWS recommends upgrading to v3 (@aws-sdk/client-dynamodb).","severity":"deprecated","affected_versions":">=0.0.0"},{"fix":"For non-prefixed tables, use dynongo.rawTable('ExactTableName') instead of dynongo.table().","message":"Table names are automatically prefixed with the 'prefix' option from connect(). Use rawTable() to bypass.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Always call .exec() at the end of your query chain, or use await on the promise.","message":"The .exec() method must be called at the end of the query chain to execute. Forgetting it results in no operation.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Pin to a specific version and test upgrades carefully.","message":"Version 0.x does not follow semver strictly; minor versions may contain breaking changes.","severity":"breaking","affected_versions":">=0.0.0 <1.0.0"}],"env_vars":null,"search_vec":"'0.19.0':3 'activ':59 'amazon':18 'api':53 'aw':66,74 'aws-sdk':65 'chain':21 'connect':32 'databas':75 'depend':61 'differenti':45 'dynamodb':19,34,55,70 'dynongo':1 'exec':28 'familiar':49 'find':24 'includ':20 'javascript':69 'last':4 'like':14,23 'local':35 'low':58 'mechan':37 'method':22 'mongo':72 'mongodb':13,51,71 'mongodb-lik':12 'mongodb-styl':50 'mongoos':73 'nosql':76 'offer':47 'older':64 'p':40 'p-retri':39 'prefix':31 'provid':10 'queri':15 'recent':8 'releas':5 'retri':36,41 'sdk':67 'select':26 'style':52 'support':29 'syntax':16 'tabl':30 'type':44 'typescript':43,77 'unknown':6 'updat':9 'v2':68 'version':2 'via':38","created_at":"2026-06-05T16:56:05.093956+00:00","updated_at":"2026-06-05T16:56:05.093956+00:00","problems":[{"fix":"Run: npm install dynongo","cause":"Dynongo is not installed or not in node_modules.","error":"Cannot find module 'dynongo'"},{"fix":"Set AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY (and optionally AWS_SESSION_TOKEN) environment variables, or call dynongo.connect({ accessKeyId: '...', secretAccessKey: '...' }).","cause":"No AWS credentials provided via env vars, IAM role, or config.","error":"CredentialsError: Missing credentials in config"},{"fix":"Use: import dynongo from 'dynongo'; (default import) or const dynongo = require('dynongo');","cause":"Importing incorrectly; likely using named import instead of default.","error":"TypeError: dynongo.connect is not a function"},{"fix":"Ensure your .where() conditions use the correct key attributes (hash key, range key) and operators.","cause":"Query key conditions do not match the table's primary key schema.","error":"ValidationException: The provided key element does not match the schema"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/SamVerschueren/dynongo#readme","github":"https://github.com/SamVerschueren/dynongo","docs":null,"changelog":null,"pypi":null,"npm":"dynongo","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}