{"id":42878,"library":"iridium","title":"Iridium","description":"Iridium is a lightweight, TypeScript-first ORM for MongoDB designed for power-users who want fine-grained control over database interactions. The current stable version is 7.2.5, with a low release cadence (last release in 2019). It provides a bare-bones abstraction over the MongoDB driver, supporting schema validation, pre/post hooks, and minimal magic. Compared to Mongoose, Iridium offers less built-in convenience but greater transparency and performance for advanced use cases. It ships with TypeScript definitions and requires Node.js >= 6. It is ideal for projects that need a thin wrapper without heavy opinionation.","status":"maintenance","version":"7.2.5","language":"javascript","source_language":"en","source_url":"https://github.com/sierrasoftworks/iridium","tags":["javascript","mongodb","orm","odm","iridium","validation","preprocessing","typescript"],"install":[{"cmd":"npm install iridium","lang":"bash","label":"npm"},{"cmd":"yarn add iridium","lang":"bash","label":"yarn"},{"cmd":"pnpm add iridium","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Type definitions for Bluebird promises (peer dep)","package":"@types/bluebird","optional":true},{"reason":"Type definitions for lodash utilities (peer dep)","package":"@types/lodash","optional":true},{"reason":"Type definitions for MongoDB driver (peer dep)","package":"@types/mongodb","optional":true},{"reason":"Type definitions for Chai assertions (peer dep, testing)","package":"@types/chai","optional":true}],"imports":[{"note":"Iridium is a named export (not default). Common mistake to use default import.","wrong":"import Iridium from 'iridium'","symbol":"Iridium","correct":"import { Iridium } from 'iridium'"},{"note":"Model is exported from the main 'iridium' package. No subpath needed.","wrong":"import { Model } from 'iridium/core'","symbol":"Model","correct":"import { Model } from 'iridium'"},{"note":"Iridium's Document is distinct from Mongoose's. Use directly from iridium.","wrong":"import { Document } from 'mongoose'","symbol":"Document","correct":"import { Document } from 'iridium'"}],"quickstart":{"code":"const { Iridium, Model, Document } = require('iridium');\n\nconst database = new Iridium({\n  host: process.env.MONGO_HOST || 'localhost',\n  port: parseInt(process.env.MONGO_PORT ?? '27017'),\n  database: process.env.MONGO_DB || 'test'\n});\n\ninterface ICar {\n  make: string;\n  model: string;\n  year: number;\n}\n\nclass Car extends Model<ICar> {\n  static schema = {\n    make: { type: String, required: true },\n    model: { type: String, required: true },\n    year: { type: Number, min: 1886 }\n  };\n\n  static collection = 'cars';\n}\n\ndatabase.connect().then(async () => {\n  const car = new Car({ make: 'Toyota', model: 'Corolla', year: 2020 });\n  await car.save();\n  console.log('Car saved:', car._id);\n});","lang":"typescript","description":"Shows how to connect to MongoDB, define a model with schema, create a document, and save it using Iridium."},"warnings":[{"fix":"Surround calls with Promise.resolve() or use async/await with Bluebird configuration.","message":"Iridium 7.x uses Bluebird promises, which are deprecated in favor of native Promises.","severity":"deprecated","affected_versions":">=7.0.0 <8.0.0"},{"fix":"Always call database.connect() and await the promise before using models.","message":"In v7, the connection method changed from new Iridium(...).connect() to requiring an explicit .connect() call after instantiation.","severity":"breaking","affected_versions":">=7.0.0"},{"fix":"Add static collection = 'your_collection_name'; to your model class.","message":"Iridium does not automatically pluralize collection names; you must set the static 'collection' property.","severity":"gotcha","affected_versions":">=3.0.0"},{"fix":"Use Mongoose-like schema objects or check documentation for alternative formats.","message":"The static 'schema' property uses a deprecated format with type strings; newer versions prefer object constructors.","severity":"deprecated","affected_versions":">=7.0.0"}],"env_vars":null,"search_vec":"'2019':40 '6':87 '7.2.5':31 'abstract':47 'advanc':76 'bare':45 'bare-bon':44 'bone':46 'built':67 'built-in':66 'cadenc':36 'case':78 'compar':60 'control':22 'conveni':69 'current':27 'databas':24 'definit':83 'design':12 'driver':51 'fine':20 'fine-grain':19 'first':8 'grain':21 'greater':71 'heavi':99 'hook':56 'ideal':90 'interact':25 'iridium':1,2,63,105 'javascript':101 'last':37 'less':65 'lightweight':5 'low':34 'magic':59 'minim':58 'mongodb':11,50,102 'mongoos':62 'need':94 'node.js':86 'odm':104 'offer':64 'opinion':100 'orm':9,103 'perform':74 'power':15 'power-us':14 'pre/post':55 'preprocess':107 'project':92 'provid':42 'releas':35,38 'requir':85 'schema':53 'ship':80 'stabl':28 'support':52 'thin':96 'transpar':72 'typescript':7,82,108 'typescript-first':6 'use':77 'user':16 'valid':54,106 'version':29 'want':18 'without':98 'wrapper':97","created_at":"2026-06-05T16:57:06.579497+00:00","updated_at":"2026-06-05T16:57:06.579497+00:00","problems":[{"fix":"Use import { Iridium } from 'iridium' (named import) instead of import Iridium from 'iridium'.","cause":"Default import instead of named import when using ES modules or TypeScript.","error":"TypeError: Iridium is not a constructor"},{"fix":"Run npm install iridium and ensure node_modules contains it.","cause":"Package not installed or incorrectly referenced.","error":"Error: Cannot find module 'iridium'"},{"fix":"Provide username/password in the connection options (e.g., { username: 'user', password: 'pass' }).","cause":"Missing or incorrect MongoDB credentials.","error":"Error: MongoError: Authentication failed."}],"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://sierrasoftworks.com/iridium","github":"https://github.com/sierrasoftworks/iridium","docs":null,"changelog":null,"pypi":null,"npm":"iridium","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}}