$ account Automattic
Mongoose is a MongoDB Object Document Mapper (ODM) for Node.js, providing a schema-based solution to model application data. It wraps the official MongoDB Node.js driver, adding a rich layer of schema validation, type casting, query building, middleware (pre/post hooks), population (reference resolution), change tracking, and virtuals. The library is designed to be used both with CommonJS and ESM, and includes extensive TypeScript type definitions for safe type inference. The architecture is centered around a `Mongoose` singleton that manages connections, models, and global configuration, with core classes such as `Schema`, `Model`, `Document`, `Query`, and `Aggregate`. External dependencies include the MongoDB Node.js driver, the BSON library, and the `kareem` middleware package. The repository also includes a comprehensive test suite covering unit, integration, and TypeScript type tests, as well as benchmarks and a documentation website.