Releases: vextjs/monSQLize
Releases · vextjs/monSQLize
monSQLize v1.0.0 - Official Release 🎉
🎉 monSQLize v1.0.0 - Official Release
高性能 MongoDB 增强库 - 正式发布!
📦 安装
npm install monsqlize🌟 为什么选择 monSQLize?
monSQLize 是一个专为 MongoDB 设计的高性能增强库,在保持 100% MongoDB API 兼容的同时,提供:
- ⚡ 10-100x 性能提升 - 智能缓存系统
- 🔄 事务管理优化 - 自动管理 + 优化,减少 30% DB 访问
- 🌐 分布式部署支持 - Redis Pub/Sub 实现多实例缓存一致性
- 📦 便利方法 - 减少 60-80% 代码量
- 🛠️ 运维监控 - 开箱即用的健康检查、性能监控
✨ 核心功能
🔵 完整的 CRUD 操作(100%)
- Create:
insertOne,insertMany,insertBatch(高性能批处理,10-50x 提升) - Read:
find,findOne,findPage(游标分页,支持千万级数据),aggregate,count,distinct - Update:
updateOne,updateMany,replaceOne,findOneAndUpdate,findOneAndReplace - Delete:
deleteOne,deleteMany,findOneAndDelete
⚡ 便利方法(减少 60-80% 代码)
- findOneById - 通过 ID 查询,减少 80% 代码
- findByIds - 批量查询,1次 DB 调用
- upsertOne - 简化 upsert 操作
- incrementOne - 原子递增/递减
- findAndCount - 同时返回数据和总数
🚀 智能缓存系统
- TTL/LRU 多种策略
- 自动缓存失效(写操作后)
- 多层缓存(内存 + Redis)
- 并发去重
🔐 完整的事务支持
- 自动管理:
withTransaction() - 手动管理:
startTransaction() - 缓存锁机制(防止脏读)
- 只读优化(-30% DB访问)
- 文档级别锁(16倍并发提升)
📊 深度分页
- 游标分页(性能稳定,不受页数影响)
- 支持千万级数据
- 前后翻页、跳页
- 异步总数统计
🌐 分布式部署
- 多实例缓存一致性(Redis Pub/Sub)
- 分布式事务锁
- 1-5ms 实时广播延迟
🛠️ Admin/Management 功能
- 运维监控: ping, buildInfo, serverStatus, stats
- 数据库管理: listDatabases, dropDatabase, listCollections, runCommand
- Schema 验证: setValidator, setValidationLevel, setValidationAction, getValidator
- 集合管理: stats, renameCollection, collMod, convertToCapped
📈 索引管理
- createIndex, createIndexes, listIndexes, dropIndex, dropIndexes
- 支持所有索引类型(单字段、复合、唯一、TTL、文本、地理空间等)
🚀 性能优势
批量插入性能
| 文档数 | MongoDB 原生 | monSQLize | 提升倍数 |
|---|---|---|---|
| 1,000 | 850ms | 45ms | 18.9x |
| 5,000 | 4,200ms | 180ms | 23.3x |
| 10,000 | 8,500ms | 350ms | 24.3x |
| 50,000 | 43,000ms | 1,700ms | 25.3x |
缓存性能
| 场景 | 无缓存 | 有缓存 | 提升倍数 |
|---|---|---|---|
| 简单查询 | 15ms | 0.1ms | 150x |
| 复杂聚合 | 500ms | 0.5ms | 1000x |
| 深度分页 | 2000ms | 1ms | 2000x |
📚 文档与示例
完整文档
示例代码
- 📁 完整示例代码目录
- 50+ 可运行示例,涵盖所有功能场景
🎯 快速开始
const MonSQLize = require('monsqlize');
// 1. 连接数据库
const db = new MonSQLize({
type: 'mongodb',
config: { uri: 'mongodb://localhost:27017/mydb' }
});
const { collection } = await db.connect();
// 2. 基础 CRUD
const users = collection('users');
// 插入
await users.insertOne({ name: 'Alice', age: 30 });
// 查询(启用缓存 5 秒)
const alice = await users.findOne({ name: 'Alice' }, { cache: 5000 });
// 更新(自动失效缓存)
await users.updateOne({ name: 'Alice' }, { $set: { age: 31 } });
// 3. 便利方法
const user = await users.findOneById('507f1f77bcf86cd799439011');
await users.upsertOne({ email: '[email protected]' }, { name: 'Alice' });
// 4. 事务支持
await db.withTransaction(async (session) => {
await users.updateOne({ _id: userId }, { $inc: { balance: -100 } }, { session });
await orders.insertOne({ userId, amount: 100 }, { session });
});
// 5. 深度分页
const result = await users.findPage({
query: { status: 'active' },
page: 1,
limit: 20
});✅ 质量保证
- ✅ 测试覆盖率: 77%+
- ✅ 测试用例: 1000+ 个测试用例,100% 通过
- ✅ 文档完整性: 100% API 文档覆盖
- ✅ 示例代码: 50+ 可运行示例
- ✅ Lint: 0 错误 0 警告
- ✅ 安全审计: 无高危漏洞
🔧 兼容性
Node.js 版本
| 版本 | 支持状态 | 测试状态 |
|---|---|---|
| 14.x | ✅ 支持 | ✅ 已测试 |
| 16.x | ✅ 支持 | ✅ 已测试 |
| 18.x | ✅ 完全支持 | ✅ 已测试(推荐) |
| 20.x | ✅ 完全支持 | ✅ 已测试(推荐) |
| 22.x | ✅ 支持 | ✅ 已测试 |
MongoDB Driver 版本
| 版本 | 支持状态 | 测试状态 |
|---|---|---|
| 4.x | ✅ 完全支持 | ✅ 已测试 |
| 5.x | ✅ 完全支持 | ✅ 已测试 |
| 6.x | ✅ 完全支持 | ✅ 已测试(推荐) |
| 7.x | ✅ 完全支持 | ✅ 已测试 |
MongoDB Server 版本
- ✅ MongoDB 4.4+
- ✅ MongoDB 5.0+
- ✅ MongoDB 6.0+
🎉 Breaking Changes
无破坏性变更
从 v0.3.0 可以平滑升级到 v1.0.0,无需修改任何代码。
🙏 贡献者
感谢所有为这个项目做出贡献的开发者!
📄 许可证
MIT License - Copyright (c) 2025 vextjs
🔗 链接
- npm: https://www.npmjs.com/package/monsqlize
- GitHub: https://github.com/vextjs/monSQLize
- 文档: https://github.com/vextjs/monSQLize/tree/main/docs
- 示例: https://github.com/vextjs/monSQLize/tree/main/examples
- Issues: https://github.com/vextjs/monSQLize/issues
🎉 立即开始使用 monSQLize,让你的 MongoDB 应用性能飞跃!