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.
DatabaseConnectDefault
✓ import { DatabaseConnectDefault } from 'ts-mongo-orm'
✗ const DatabaseConnectDefault = require('ts-mongo-orm').DatabaseConnectDefault
ESM-only; CommonJS require works but prefer import.
ActiveRecord
✓ import { ActiveRecord } from 'ts-mongo-orm'
✗ import ActiveRecord from 'ts-mongo-orm'
Named export, not default.
Document, Field, ObjectIdField
✓ import { Document, Field, ObjectIdField } from 'ts-mongo-orm'
✗ import { Document, Field } from 'ts-mongo-orm'
ObjectIdField is used for _id Field; also needs mongodb's ObjectId.
ActiveRecord.for
✓ const UserAR = ActiveRecord.for(User, UserModel)
✗ ActiveRecord.for(User)
Requires two arguments: document class and model class. If same, pass same class twice.
Connects to MongoDB, defines a User document with validation, creates a record, finds it, deletes it, and closes the connection.
import { DatabaseConnectDefault, ActiveRecord, Document, Field, ObjectIdField } from 'ts-mongo-orm';
import { ObjectId } from 'mongodb';
import * as Joi from '@hapi/joi';
@Document
class User {
static databaseName = 'test';
static collectionName = 'users';
@ObjectIdField()
_id: ObjectId;
@Field(Joi.string().email())
email: string;
@Field(Joi.string().min(1))
name: string;
constructor() {
this._id = new ObjectId();
this.email = '';
this.name = '';
}
}
export const UserAR = ActiveRecord.for(User, User);
(async () => {
await DatabaseConnectDefault(process.env.MONGO_URI ?? 'mongodb://localhost:27017/test');
const user = await UserAR.create({ email: 'test@test.com', name: 'Test User' });
console.log('Created user:', user._id);
const found = await UserAR.findOne({ email: 'test@test.com' });
console.log('Found:', found?.name);
await UserAR.deleteOne({ _id: user._id });
await UserAR.close();
})();
Errors
Common errors & fixes
Error: Cannot find module 'ts-mongo-orm'
Package not installed or missing peer dependencies
fixRun 'npm install ts-mongo-orm' and ensure all peer deps are installed: npm install mongodb @hapi/joi @types/mongodb @types/hapi__joi typescript
TypeError: Class extends value undefined is not a constructor or null
Forgetting to import or apply @Document decorator on the model class
fixEnsure the document class has @Document decorator and both arguments to ActiveRecord.for are defined.
Argument of type 'string' is not assignable to parameter of type 'ObjectId | { _id: ObjectId; }'
Passing a plain string to findOne instead of query object
fixUse findOne({ email: 'test@test.com' }) instead of findOne('test@test.com') Cannot find name 'Joi'. Did you mean 'joi'?
Not importing @hapi/joi correctly or missing dependency
fixInstall @hapi/joi and import: import * as Joi from '@hapi/joi'
Audit
Dependencies
mongodbrequiredNative MongoDB driver for database operations
@types/mongodboptionalTypeScript type definitions for mongodb
@hapi/joirequiredSchema validation for document fields
@types/hapi__joioptionalTypeScript type definitions for @hapi/joi
typescriptoptionalRequired for decorator support and type checking