Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: vextjs/monSQLize

monSQLize v1.0.0 - Official Release 🎉

02 Dec 13:02

Choose a tag to compare

🎉 monSQLize v1.0.0 - Official Release

高性能 MongoDB 增强库 - 正式发布!

npm version
License: MIT


📦 安装

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

📚 文档与示例

完整文档

示例代码


🎯 快速开始

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


🔗 链接


🎉 立即开始使用 monSQLize,让你的 MongoDB 应用性能飞跃!