面向 Node.js 与 TypeScript 的 ORM,提供类型安全的数据库访问,支持 PostgreSQL、MySQL、SQLite、MongoDB 等。
Automattic/mongoose
面向 Node.js 异步环境的 MongoDB 对象建模库,提供 Schema、模型、校验与查询功能。
- Star
- 27,460
- Fork
- 4,074
- 未关闭 Issue
- 182
- 最近提交
- 4小时前
这是什么?
Mongoose 是面向 MongoDB 的对象建模(ODM)库,专为异步运行环境下的 Node.js 应用设计。开发者可以用 Schema 描述文档结构,再以模型实例的形式进行校验、保存、查询和更新。
Schema 可以定义字段类型、默认值、同步与异步校验器、getter 和 setter、索引、中间件钩子、实例方法、静态方法以及插件。基于 Schema 生成的模型提供 find、findOne、findById 等查询方法,文档还支持嵌入式子文档和 populate 跨集合关联查询。
Mongoose 构建在官方 MongoDB Node.js 驱动之上,支持 Node.js,并提供 Deno 的 alpha 版本支持。它也可以通过 createConnection 管理多个数据库连接。另有配套工具 Mongoose Studio,是一个基于浏览器的 MongoDB 图形界面,可直接使用现有的 Mongoose 模型。
核心功能
- 01通过 Schema 定义字段类型、默认值和校验规则
- 02通过模型方法查询、创建、更新和删除文档
- 03支持嵌入式子文档以及 populate 跨集合关联
- 04提供中间件钩子、实例方法、静态方法和插件机制
- 05基于官方 MongoDB Node.js 驱动,支持多个数据库连接
适用场景
- 为使用 MongoDB 的 Node.js 或 Express 后端添加结构化数据层
- 在文档写入数据库前统一执行校验并设置默认值
- 通过插件在多个模型之间复用 Schema 逻辑
快速上手
- 1
先安装 Node.js 和 MongoDB
- 2
使用 npm 安装 mongoose 包
npm install mongoose - 3
在代码中连接你的 MongoDB 数据库
await mongoose.connect('mongodb://127.0.0.1/my_database');
使用前须知
- 需要另外安装 MongoDB 服务器才能使用。
标签
常见问题
- mongoose 是什么?
- 面向 Node.js 异步环境的 MongoDB 对象建模库,提供 Schema、模型、校验与查询功能。 Mongoose 是面向 MongoDB 的对象建模(ODM)库,专为异步运行环境下的 Node.js 应用设计。开发者可以用 Schema 描述文档结构,再以模型实例的形式进行校验、保存、查询和更新。
- mongoose 可以免费使用吗?用的什么许可证?
- mongoose 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- mongoose 还在维护吗?
- 活跃维护中。mongoose 最近一次提交是在 2026年10月21日。
- mongoose 适合用来做什么?
- 为使用 MongoDB 的 Node.js 或 Express 后端添加结构化数据层 在文档写入数据库前统一执行校验并设置默认值 通过插件在多个模型之间复用 Schema 逻辑
- mongoose 怎么安装和运行?
- 先安装 Node.js 和 MongoDB 使用 npm 安装 mongoose 包: npm install mongoose 在代码中连接你的 MongoDB 数据库: await mongoose.connect('mongodb://127.0.0.1/my_database');
- 在哪里获取 mongoose?
- 源代码和安装说明在 GitHub 上:https://github.com/Automattic/mongoose
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 Node.js 等 JS 平台的 TypeScript/JavaScript ORM,同时支持 Active Record 与 Data Mapper 模式。
基于 Data Mapper 与 Unit of Work 模式的 Node.js TypeScript ORM,支持多种 SQL 数据库与 MongoDB。
MongoDB 官方 Node.js 驱动,用于在应用代码中连接 MongoDB 并执行查询。
Meteor 是一个全栈 JavaScript 应用平台,可用同一套代码开发 Web、iOS、Android 和桌面应用。
基于 Node.js 的论坛软件,支持实时讨论,可使用 Redis、MongoDB 或 PostgreSQL 作为数据库。