Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
createConnection
✓ import { createConnection } from 'ts-mongodb-orm'
✗ const { createConnection } = require('ts-mongodb-orm')
ESM-only; CommonJS require fails. Use import syntax.
Document
✓ import { Document } from 'ts-mongodb-orm'
✗ import { Document } from 'mongodb'
Decorator for class schema, not to be confused with MongoDB's Document type.
Field
✓ import { Field } from 'ts-mongodb-orm'
✗ import { Field } from 'typeorm'
Decorator for defining fields on the document class.
Shows decorator-based schema definition, connection setup, repository creation, and CRUD operations.
import { Binary, createConnection, Document, Field, Index, ObjectId } from 'ts-mongodb-orm';
import { MongoClient } from 'mongodb';
@Index({ numberValue: -1 })
@Document({ collectionName: 'QuickStart' })
class QuickStart {
@Field() public _id!: ObjectId;
@Field() public stringValue?: string;
@Field() public numberValue: number = 0;
@Field() public booleanValue: boolean = false;
@Field({ index: -1 }) public dateValue: Date = new Date();
@Field() public arrayValue: number[] = [1, 2, 3];
@Field() public objectArrayValue: any = {};
@Field() public binary: Binary = new Binary(Buffer.alloc(0));
}
async function quickStart() {
const uri = process.env.MONGO_URI ?? 'mongodb://localhost:27017';
const connection = await createConnection({ uri, dbName: 'test', mongoClientOptions: { w: 'majority', ignoreUndefined: true, serverSelectionTimeoutMS: 5000 } });
const repository = connection.getRepository(QuickStart);
await repository.createCollection({ strict: true });
await repository.syncIndex();
const doc = new QuickStart();
doc.stringValue = 'hello';
await repository.insert(doc);
console.log('Inserted document with ID:', doc._id);
const found = await repository.findOne(doc._id);
console.log('Found:', found);
}
quickStart().catch(console.error);
Errors
Common errors & fixes
Cannot find namespace 'ObjectId'
ObjectId not imported from ts-mongodb-orm
fiximport { ObjectId } from 'ts-mongodb-orm' Reflect.metadata polyfill required for decorators
Missing reflect-metadata or experimental options
fixnpm install reflect-metadata and import it at entry point; set experimentalDecorators and emitDecoratorMetadata in tsconfig
MongoServerError: Authentication failed
Invalid credentials in connection URI
fixCheck MONGO_URI environment variable or hardcoded credentials
Audit
Dependencies
mongodbrequiredpeer dependency; the ORM wraps the official mongodb driver