monsqlize 1.0.5 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # 变更日志 (CHANGELOG)
2
2
 
3
- > **说明**: 版本摘要,详细需求见 [STATUS.md](STATUS.md)
4
- > **最后更新**: 2025-12-31
3
+ > **说明**: 版本概览摘要,详细变更见 [changelogs/](./changelogs/) 目录
4
+ > **最后更新**: 2026-01-17
5
5
 
6
6
  ---
7
7
 
@@ -9,163 +9,160 @@
9
9
 
10
10
  | 版本 | 日期 | 变更摘要 | 详细 |
11
11
  |------|------|---------|------|
12
+ | [v1.0.8](./changelogs/v1.0.8.md) | 2026-01-17 | 🎉 重大功能:多连接池 + Update 聚合管道 + Saga 事务 + Change Stream 同步 | [查看](./changelogs/v1.0.8.md) |
13
+ | [v1.0.7](./changelogs/v1.0.7.md) | 2026-01-09 | 🔧 依赖更新:schema-dsl@1.1.3 修复类型错误消息 + 测试用例 Schema 语法修复 | [查看](./changelogs/v1.0.7.md) |
14
+ | [v1.0.6](./changelogs/v1.0.6.md) | 2026-01-08 | 文档完善:新增 ObjectId 自动转换文档 + 验证所有 v1.3.0+ 功能文档 | [查看](./changelogs/v1.0.6.md) |
15
+ | [v1.0.5](./changelogs/v1.0.5.md) | 2026-01-08 | Schema 验证默认启用 + Model 自动加载机制 + 类型定义完善 | [查看](./changelogs/v1.0.5.md) |
16
+ | [v1.0.4](./changelogs/v1.0.4.md) | 2026-01-07 | 新功能:虚拟字段、默认值 + Bug 修复:嵌套 Populate + 测试改进 | [查看](./changelogs/v1.0.4.md) |
12
17
  | [v1.0.3](STATUS.md#v103) | 2025-12-31 | 新增 Model 层(Schema 验证、自定义方法、生命周期钩子、自动时间戳) | [查看](STATUS.md#v103) |
13
18
  | [v1.0.2](STATUS.md#v102) | 2025-12-30 | 新增批量操作方法(deleteBatch/updateBatch) | [查看](STATUS.md#v102) |
14
19
  | [v1.0.1](STATUS.md#v101) | 2025-12-29 | 稳定版本,生产就绪 | [查看](STATUS.md#v101) |
15
- | [v1.0.0](STATUS.md#v100) | 2025-12-03 | 正式发布,生产就绪,已发布到 npm | [查看](STATUS.md#v100) |
20
+ | [v1.0.0](./changelogs/v1.0.0.md) | 2025-12-03 | 正式发布,生产就绪,已发布到 npm | [查看](./changelogs/v1.0.0.md) |
16
21
 
17
22
  ---
18
23
 
19
- ## 🆕 v1.0.3 变更详情(2025-12-31)
20
-
21
- ### 新增功能 ✨
22
-
23
- **Model 层** - ORM 式的数据模型功能
24
- - ✅ **Schema 验证** - 集成 schema-dsl,自动验证数据格式
25
- - ✅ **自定义方法** - instance 方法注入到文档,static 方法挂载到 Model
26
- - ✅ **生命周期钩子** - before/after 钩子支持(find/insert/update/delete)
27
- - ✅ **索引自动创建** - 初始化时自动创建索引
28
- - ✅ **枚举配置** - 可在 schema 中引用的枚举定义
29
- - ✅ **自动时间戳** - 自动管理 createdAt/updatedAt,支持自定义字段名
30
-
31
- ### 核心 API 🔧
32
-
33
- ```javascript
34
- // 定义 Model
35
- Model.define('users', {
36
- schema: (dsl) => dsl({ username: 'string!', email: 'email!' }),
37
- methods: (model) => ({
38
- instance: { checkPassword(pwd) { return this.password === pwd; } },
39
- static: { async findByUsername(name) { return await model.findOne({ username: name }); } }
40
- }),
41
- hooks: (model) => ({
42
- insert: { before: async (ctx, docs) => ({ ...docs, createdAt: new Date() }) }
43
- }),
44
- indexes: [{ key: { username: 1 }, unique: true }]
45
- });
46
-
47
- // 使用 Model
48
- const User = msq.model('users');
49
- const user = await User.findByUsername('admin');
50
- if (user.checkPassword('secret')) console.log('登录成功');
51
- ```
24
+ ## 变更统计
52
25
 
53
- ### 测试覆盖
26
+ | 版本系列 | 版本数 | 主要改进方向 |
27
+ |---------|-------|------------|
28
+ | v1.0.x | 9 | 企业级功能、分布式支持、Model 层完善、Schema 验证、依赖更新 |
54
29
 
55
- - 新增 45 个单元测试
56
- - Model 基础功能:16个(100%通过)
57
- - ModelInstance:23个
58
- - Hooks:6个
59
- - 测试覆盖率:~90%
30
+ ---
60
31
 
61
- ### 文档完善 📖
32
+ ## 里程碑版本
62
33
 
63
- - 新增 `docs/model.md` - 完整 API 文档(495行,精简版)
64
- - 新增 `docs/model-methods-design.md` - 设计文档(295行)
65
- - 新增 `examples/model/basic.js` - 基础使用示例
66
- - 新增 `examples/model/advanced.js` - 高级功能示例
67
- - 新增 TypeScript 类型定义(+300行)
68
- - 更新 `README.md`、`docs/INDEX.md`
34
+ ### v1.0.8 - 企业级功能升级 🎉
69
35
 
70
- ### 设计亮点 💡
36
+ **发布日期**: 2026-01-16
37
+ **重要性**: ⭐⭐⭐⭐⭐
71
38
 
72
- - ✅ **业界标准** - 参考 Mongoose、Sequelize,降低学习成本
73
- - ✅ **Schema 缓存** - 编译一次,重复使用,性能优化
74
- - ✅ **方法注入** - 自动注入到查询结果,使用自然
75
- - ✅ **TypeScript 支持** - 完整的泛型类型定义
76
- - ✅ **灵活配置** - 所有选项都可选,渐进式采用
39
+ **核心功能**:
40
+ - ✅ **企业级多连接池管理**: 支持 primary、secondary、analytics、custom 角色
41
+ - ✅ **智能选择策略**: auto、roundRobin、weighted、leastConnections、manual
42
+ - ✅ **健康检查机制**: 自动故障检测和恢复,支持自定义检查间隔和重试次数
43
+ - ✅ **Update 聚合管道**: updateOne/updateMany 支持聚合管道语法
44
+ - ✅ **Saga 分布式事务**: 完整的补偿机制,支持跨服务事务
45
+
46
+ **质量提升**:
47
+ - 🏆 **测试覆盖率**: 90.77% (从 37.8% 提升,+53%)
48
+ - 🏆 **测试数量**: 400+个测试用例 (增长 4000%)
49
+ - 🏆 **函数覆盖率**: 95.23%
50
+ - 🏆 **核心功能**: 100% 测试覆盖
51
+ - 🏆 **行业领先**: 超过 85% 的开源项目
52
+
53
+ **重大改进**:
54
+ 1. **多连接池架构**:
55
+ - ConnectionPoolManager: 统一管理多个连接池
56
+ - HealthChecker: 实时健康监控
57
+ - PoolSelector: 5种智能选择策略
58
+ - PoolStats: 完整的统计收集
59
+
60
+ 2. **Update 聚合管道**:
61
+ - 支持字段间计算 (`$add`、`$multiply`、`$subtract`)
62
+ - 条件赋值 (`$cond`、`$ifNull`)
63
+ - 多阶段转换 (`$concat`、`$toLower`、`$toUpper`)
64
+ - 完全兼容 MongoDB 4.2+ 语法
65
+
66
+ 3. **Saga 分布式事务**:
67
+ - 自动补偿机制
68
+ - 事务状态跟踪
69
+ - 支持超时和重试
70
+ - 完整的错误处理
71
+
72
+ **详细信息**: [查看 changelogs/v1.0.8.md](./changelogs/v1.0.8.md)
77
73
 
78
- ### 使用场景 🎯
74
+ ---
79
75
 
80
- - 需要数据验证的场景
81
- - ✅ 需要扩展文档方法的场景
82
- - ✅ 需要生命周期控制的场景
83
- - ✅ 需要类 ORM 体验的场景
76
+ ### v1.0.7 - 依赖更新与测试修复 🔧
84
77
 
85
- ---
78
+ **发布日期**: 2026-01-09
79
+ **重要性**: ⭐⭐⭐
86
80
 
87
- ## 🆕 v1.0.2 变更详情(2025-12-30)
81
+ **核心改进**:
82
+ - ✅ 升级 schema-dsl 到 v1.1.3(修复类型错误消息模板变量未替换 bug)
83
+ - ✅ 修复测试用例中错误的 Schema 语法(17处)
84
+ - ✅ 所有测试通过(38/38 测试套件,100%)
85
+ - ✅ 将 schema-dsl 从 devDependencies 移至 dependencies(Model 层运行时依赖)
88
86
 
89
- ### 新增功能
87
+ **详细信息**: [查看 changelogs/v1.0.7.md](./changelogs/v1.0.7.md)
90
88
 
91
- **批量操作方法** - 支持大数据量场景
92
- - ✅ **deleteBatch** - 批量删除方法
93
- - 流式查询,恒定内存占用(12KB)
94
- - 支持进度监控(实时百分比)
95
- - 4种错误处理策略(stop/skip/collect/retry)
96
- - 自动重试机制
97
- - 性能:36,385 条/秒(100万条数据实测)
98
-
99
- - ✅ **updateBatch** - 批量更新方法
100
- - 流式查询,恒定内存占用(12KB)
101
- - 支持进度监控(实时百分比)
102
- - 支持所有 MongoDB 更新操作符
103
- - 4种错误处理策略 + 自动重试
104
- - 性能:35,365 条/秒(100万条数据实测)
89
+ ---
105
90
 
106
- ### 性能数据 📊
91
+ ### v1.0.6 - 文档完善 📚
107
92
 
108
- ```
109
- 批量操作性能(100万条数据测试):
110
- - insertBatch: 49,493 条/秒
111
- - deleteBatch: 36,385 条/秒
112
- - updateBatch: 35,365 条/秒
113
- - 内存占用: 恒定 12KB
114
- ```
93
+ **发布日期**: 2026-01-08
94
+ **重要性**: ⭐⭐⭐
115
95
 
116
- ### 测试覆盖 ✅
96
+ **核心成就**:
97
+ - ✅ 文档完整性达到 100%
98
+ - ✅ 新增 ObjectId 自动转换完整文档(600行)
99
+ - ✅ 验证所有 v1.3.0+ 功能都有文档
117
100
 
118
- - 新增 31 个单元测试(deleteBatch: 14个,updateBatch: 17个)
119
- - 性能测试通过(100万条数据)
120
- - 测试覆盖率 > 90%
101
+ **详细信息**: [查看 changelogs/v1.0.6.md](./changelogs/v1.0.6.md)
102
+
103
+ ---
121
104
 
122
- ### 文档完善 📖
105
+ ### v1.0.5 - Model 层易用性提升 🚀
123
106
 
124
- - 新增 `docs/deleteBatch.md` - 完整 API 文档(650行)
125
- - 新增 `docs/updateBatch.md` - 完整 API 文档(600行)
126
- - 新增 `examples/batch-operations.examples.js` - 8个真实业务场景
127
- - 更新 `README.md` 和 `docs/INDEX.md`
107
+ **发布日期**: 2026-01-08
108
+ **重要性**: ⭐⭐⭐⭐
128
109
 
129
- ### 技术亮点 💡
110
+ **核心特性**:
111
+ - ✅ Schema 验证默认启用(提升数据质量)
112
+ - ✅ Model 自动加载机制(减少样板代码)
113
+ - ✅ 类型定义完善
130
114
 
131
- - **完全复用 find 方法** - 0行重复代码,自动获得流式查询、慢查询日志等功能
132
- - ✅ **架构最简** - 单一流式查询实现,数据一致性有保证
133
- - ✅ **内存优化** - 流式查询,无论处理多少数据,内存占用恒定 12KB
134
- - ✅ **错误处理完善** - 4种策略 + 自动重试,适应不同业务场景
115
+ **详细信息**: [查看 changelogs/v1.0.5.md](./changelogs/v1.0.5.md)
135
116
 
136
117
  ---
137
118
 
138
- ## 🆕 v1.0.1 变更详情(2025-12-29)
119
+ ### v1.0.4 - 虚拟字段与 Bug 修复 ✨
139
120
 
140
- ### 版本说明
121
+ **发布日期**: 2026-01-07
122
+ **重要性**: ⭐⭐⭐⭐
141
123
 
142
- - 稳定版本,生产就绪
143
- - 包含完整的 CRUD 功能
144
- - 多级缓存系统
145
- - 事务支持
146
- - 分布式部署支持
147
- - Change Streams 实时监听
148
- - 慢查询日志
149
- - 业务级分布式锁
150
- - SSH 隧道支持
124
+ **核心特性**:
125
+ - 虚拟字段(计算属性)
126
+ - ✅ 默认值(插入时自动填充)
127
+ - ✅ 嵌套 Populate Bug 修复
128
+
129
+ **详细信息**: [查看 changelogs/v1.0.4.md](./changelogs/v1.0.4.md)
151
130
 
152
131
  ---
153
132
 
154
- ## 🆕 v1.0.0 变更详情(2025-12-03)
133
+ ### v1.0.0 - 正式发布 🎉
155
134
 
156
- ### 版本说明
135
+ **发布日期**: 2025-12-03
136
+ **重要性**: ⭐⭐⭐⭐⭐
157
137
 
158
- - 正式版发布,生产就绪
159
- - 企业级质量标准(96/100 A+)
160
- - 已发布到 npm
138
+ **核心成就**:
139
+ - 已发布到 npm
140
+ - 生产就绪
141
+ - ✅ 企业级质量(96/100 A+)
142
+ - ✅ 1000+ 测试用例
143
+ - ✅ 77%+ 测试覆盖率
144
+
145
+ **详细信息**: [查看 changelogs/v1.0.0.md](./changelogs/v1.0.0.md)
161
146
 
162
147
  ---
163
148
 
164
- ## 变更统计
149
+ ## 详细变更文档
165
150
 
166
- | 版本系列 | 版本数 | 主要改进方向 |
167
- |---------|-------|------------|
168
- | v1.0.x | 3 | 稳定运行、生产就绪、批量操作优化 |
151
+ > **说明**: 详细变更文档位于 `changelogs/` 目录
152
+
153
+ ```
154
+ changelogs/
155
+ ├── README.md # 变更文档说明
156
+ ├── TEMPLATE.md # 变更文档模板
157
+ ├── v1.0.0.md # v1.0.0 详细变更
158
+ ├── v1.0.4.md # v1.0.4 详细变更
159
+ └── v1.0.5.md # v1.0.5 详细变更
160
+ ```
161
+
162
+ **注意**:
163
+ - `changelogs/` 目录包含所有版本的详细变更文档
164
+ - 本文件(CHANGELOG.md)仅提供版本概览和里程碑摘要
165
+ - 需求状态追踪见 [STATUS.md](./STATUS.md)
169
166
 
170
167
  ---
171
168
 
@@ -173,25 +170,22 @@ if (user.checkPassword('secret')) console.log('登录成功');
173
170
 
174
171
  ### 添加新版本的步骤
175
172
 
176
- 1. **创建需求文档**(如需要)
173
+ 1. **创建详细变更文档**
177
174
  ```bash
178
- cp plans/TEMPLATE.md plans/req-your-feature.md
179
- # 填充需求详细信息
175
+ cp changelogs/TEMPLATE.md changelogs/vX.Y.Z.md
176
+ # 填充详细变更信息
180
177
  ```
181
178
 
182
- 2. **更新 STATUS.md**
183
- - 在"发布计划"表格添加新版本行
184
- - 添加版本章节(### vX.Y.Z)
185
- - 在版本表格添加需求行
186
- - 链接到 plans/ 文档(如有)
187
-
188
- 3. **更新 CHANGELOG.md**
179
+ 2. **更新 CHANGELOG.md**(本文件)
189
180
  - 在"版本概览"表格最上方添加新行
190
- - 格式:`| [vX.Y.Z](STATUS.md#vxyz) | 日期 | 摘要 | [查看](STATUS.md#vxyz) |`
181
+ - 格式:`| [vX.Y.Z](./changelogs/vX.Y.Z.md) | 日期 | 摘要 | [查看](./changelogs/vX.Y.Z.md) |`
182
+
183
+ 3. **更新 STATUS.md**(如需要)
184
+ - 添加版本章节和需求状态
191
185
 
192
186
  4. **提交变更**
193
187
  ```bash
194
- git add STATUS.md CHANGELOG.md plans/
188
+ git add CHANGELOG.md changelogs/vX.Y.Z.md STATUS.md
195
189
  git commit -m "docs: 发布 vX.Y.Z"
196
190
  ```
197
191
 
@@ -210,58 +204,14 @@ if (user.checkPassword('secret')) console.log('登录成功');
210
204
 
211
205
  ---
212
206
 
213
- ## 快速导航
214
-
215
- ### 当前版本
216
-
217
- - **v1.0.1**: [查看详情](STATUS.md#v101)
218
- - **v1.0.0**: [查看详情](STATUS.md#v100)
219
-
220
- ---
221
-
222
- ## 里程碑版本
223
-
224
- ### v1.0.0 - 正式发布 🎉
225
-
226
- **发布日期**: 2025-12-03
227
- **重要性**: ⭐⭐⭐⭐⭐
228
-
229
- **核心成就**:
230
- - ✅ 已发布到 npm
231
- - ✅ 生产就绪
232
- - ✅ 企业级质量(96/100 A+)
233
- - ✅ 1000+ 测试用例
234
- - ✅ 77%+ 测试覆盖率
235
-
236
- **详细信息**: [查看 STATUS.md](STATUS.md#v100)
237
-
238
- ---
239
-
240
- ## 详细变更文档
241
-
242
- > **说明**: 详细变更文档位于 `changelogs/` 目录
243
-
244
- ```
245
- changelogs/
246
- ├── TEMPLATE.md # 变更文档模板
247
- └── v1.0.0.md # v1.0.0 详细变更
248
- ```
249
-
250
- **注意**:
251
- - changelogs/ 目录包含历史详细变更文档
252
- - 新版本应优先使用 plans/ 目录存储需求文档
253
- - STATUS.md 是主要的需求状态追踪文档
254
-
255
- ---
256
-
257
207
  ## 相关文档
258
208
 
259
209
  - [STATUS.md](./STATUS.md) - 需求状态追踪
260
- - [plans/](./plans/README.md) - 需求详细文档
210
+ - [changelogs/](./changelogs/README.md) - 详细变更文档目录
261
211
  - [README.md](./README.md) - 项目说明
262
- - [changelogs/](./changelogs/README.md) - 历史详细变更(供参考)
212
+ - [docs/](./docs/INDEX.md) - API 文档
263
213
 
264
214
  ---
265
215
 
266
- **最后更新**: 2025-12-29
216
+ **最后更新**: 2026-01-08
267
217