mongster
v0.3.3
Published
Type-safe MongoDB ODM for TypeScript with schema validation and typed queries
Maintainers
Readme
Schema-first DX on top of the official MongoDB driver. Keep MongoDB semantics. Add strong types, runtime validation, and automatic index metadata in one place.
[!NOTE] Mongster is built for and with TypeScript for the modern AI era where types matter.
Install
npm install mongodb mongster
# or
bun add mongodb mongster
# or
yarn add mongodb mongster
# or
pnpm add mongodb mongsterRequires Node >= 18. Works on Bun, Deno, and other Node-compatible runtimes.
Features
- Typed aggregation —
Post.aggregate().match().group().sort().exec()infers the result shape from each stage - End-to-end type safety — schemas, inputs, filters, updates, and aggregation stages all flow into one inferred type
- Typed populate — declare
M.objectId().ref(() => Model)once and get type-checked populate with nested projection - Single schema declaration — one
M.schema(...)drives runtime validation, TypeScript inference, and index metadata - Official MongoDB driver core — thin wrapper over the official driver, no custom query engine or hidden abstractions
Quick Start
import { M, mongster } from "mongster";
const userSchema = M.schema({
name: M.string().min(1),
email: M.string().uniqueIndex(),
age: M.number().min(0).max(120),
socials: M.array(
M.object({ host: M.string(), link: M.string() }),
).optional(),
}).withTimestamps();
type User = M.infer<typeof userSchema>;
type CreateUser = M.inferInput<typeof userSchema>;
const UserModel = mongster.model("users", userSchema);
await mongster.connect("mongodb://localhost:27017/mongster");
const created = await UserModel.createOne({
name: "Alice",
email: "[email protected]",
age: 25,
socials: [{ host: "github", link: "https://github.com/alice" }],
});
const adults = await UserModel.find({ age: { $gte: 18 } })
.include(["name", "email", "socials"])
.sort({ age: -1 })
.limit(10);Documentation
Guides, API reference, and examples live at mongster.ishmam.dev.
Contributing
See CONTRIBUTING.md. Release process and maintainer workflow live there.
License
MIT. See LICENSE.
