monsqlize 1.0.5 → 1.0.6

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-08
5
5
 
6
6
  ---
7
7
 
@@ -9,163 +9,101 @@
9
9
 
10
10
  | 版本 | 日期 | 变更摘要 | 详细 |
11
11
  |------|------|---------|------|
12
+ | [v1.0.6](./changelogs/v1.0.6.md) | 2026-01-08 | 文档完善:新增 ObjectId 自动转换文档 + 验证所有 v1.3.0+ 功能文档 | [查看](./changelogs/v1.0.6.md) |
13
+ | [v1.0.5](./changelogs/v1.0.5.md) | 2026-01-08 | Schema 验证默认启用 + Model 自动加载机制 + 类型定义完善 | [查看](./changelogs/v1.0.5.md) |
14
+ | [v1.0.4](./changelogs/v1.0.4.md) | 2026-01-07 | 新功能:虚拟字段、默认值 + Bug 修复:嵌套 Populate + 测试改进 | [查看](./changelogs/v1.0.4.md) |
12
15
  | [v1.0.3](STATUS.md#v103) | 2025-12-31 | 新增 Model 层(Schema 验证、自定义方法、生命周期钩子、自动时间戳) | [查看](STATUS.md#v103) |
13
16
  | [v1.0.2](STATUS.md#v102) | 2025-12-30 | 新增批量操作方法(deleteBatch/updateBatch) | [查看](STATUS.md#v102) |
14
17
  | [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) |
18
+ | [v1.0.0](./changelogs/v1.0.0.md) | 2025-12-03 | 正式发布,生产就绪,已发布到 npm | [查看](./changelogs/v1.0.0.md) |
16
19
 
17
20
  ---
18
21
 
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
- ```
52
-
53
- ### 测试覆盖 ✅
22
+ ## 变更统计
54
23
 
55
- - 新增 45 个单元测试
56
- - Model 基础功能:16个(100%通过)
57
- - ModelInstance:23个
58
- - Hooks:6个
59
- - 测试覆盖率:~90%
24
+ | 版本系列 | 版本数 | 主要改进方向 |
25
+ |---------|-------|------------|
26
+ | v1.0.x | 7 | Model 层完善、Schema 验证、自动加载、批量操作、文档完善 |
60
27
 
61
- ### 文档完善 📖
28
+ ---
62
29
 
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`
30
+ ## 里程碑版本
69
31
 
70
- ### 设计亮点 💡
32
+ ### v1.0.6 - 文档完善 📚
71
33
 
72
- - ✅ **业界标准** - 参考 Mongoose、Sequelize,降低学习成本
73
- - ✅ **Schema 缓存** - 编译一次,重复使用,性能优化
74
- - ✅ **方法注入** - 自动注入到查询结果,使用自然
75
- - ✅ **TypeScript 支持** - 完整的泛型类型定义
76
- - ✅ **灵活配置** - 所有选项都可选,渐进式采用
34
+ **发布日期**: 2026-01-08
35
+ **重要性**: ⭐⭐⭐
77
36
 
78
- ### 使用场景 🎯
37
+ **核心成就**:
38
+ - ✅ 文档完整性达到 100%
39
+ - ✅ 新增 ObjectId 自动转换完整文档(600行)
40
+ - ✅ 验证所有 v1.3.0+ 功能都有文档
79
41
 
80
- - 需要数据验证的场景
81
- - ✅ 需要扩展文档方法的场景
82
- - ✅ 需要生命周期控制的场景
83
- - ✅ 需要类 ORM 体验的场景
42
+ **详细信息**: [查看 changelogs/v1.0.6.md](./changelogs/v1.0.6.md)
84
43
 
85
44
  ---
86
45
 
87
- ## 🆕 v1.0.2 变更详情(2025-12-30)
88
-
89
- ### 新增功能 ✨
46
+ ### v1.0.5 - Model 层易用性提升 🚀
90
47
 
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万条数据实测)
48
+ **发布日期**: 2026-01-08
49
+ **重要性**: ⭐⭐⭐⭐
105
50
 
106
- ### 性能数据 📊
51
+ **核心特性**:
52
+ - ✅ Schema 验证默认启用(提升数据质量)
53
+ - ✅ Model 自动加载机制(减少样板代码)
54
+ - ✅ 类型定义完善
107
55
 
108
- ```
109
- 批量操作性能(100万条数据测试):
110
- - insertBatch: 49,493 条/秒
111
- - deleteBatch: 36,385 条/秒
112
- - updateBatch: 35,365 条/秒
113
- - 内存占用: 恒定 12KB
114
- ```
115
-
116
- ### 测试覆盖 ✅
56
+ **详细信息**: [查看 changelogs/v1.0.5.md](./changelogs/v1.0.5.md)
117
57
 
118
- - 新增 31 个单元测试(deleteBatch: 14个,updateBatch: 17个)
119
- - 性能测试通过(100万条数据)
120
- - 测试覆盖率 > 90%
58
+ ---
121
59
 
122
- ### 文档完善 📖
60
+ ### v1.0.4 - 虚拟字段与 Bug 修复 ✨
123
61
 
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`
62
+ **发布日期**: 2026-01-07
63
+ **重要性**: ⭐⭐⭐⭐
128
64
 
129
- ### 技术亮点 💡
65
+ **核心特性**:
66
+ - ✅ 虚拟字段(计算属性)
67
+ - ✅ 默认值(插入时自动填充)
68
+ - ✅ 嵌套 Populate Bug 修复
130
69
 
131
- - **完全复用 find 方法** - 0行重复代码,自动获得流式查询、慢查询日志等功能
132
- - ✅ **架构最简** - 单一流式查询实现,数据一致性有保证
133
- - ✅ **内存优化** - 流式查询,无论处理多少数据,内存占用恒定 12KB
134
- - ✅ **错误处理完善** - 4种策略 + 自动重试,适应不同业务场景
70
+ **详细信息**: [查看 changelogs/v1.0.4.md](./changelogs/v1.0.4.md)
135
71
 
136
72
  ---
137
73
 
138
- ## 🆕 v1.0.1 变更详情(2025-12-29)
139
-
140
- ### 版本说明
74
+ ### v1.0.0 - 正式发布 🎉
141
75
 
142
- - 稳定版本,生产就绪
143
- - 包含完整的 CRUD 功能
144
- - 多级缓存系统
145
- - 事务支持
146
- - 分布式部署支持
147
- - Change Streams 实时监听
148
- - 慢查询日志
149
- - 业务级分布式锁
150
- - SSH 隧道支持
76
+ **发布日期**: 2025-12-03
77
+ **重要性**: ⭐⭐⭐⭐⭐
151
78
 
152
- ---
79
+ **核心成就**:
80
+ - ✅ 已发布到 npm
81
+ - ✅ 生产就绪
82
+ - ✅ 企业级质量(96/100 A+)
83
+ - ✅ 1000+ 测试用例
84
+ - ✅ 77%+ 测试覆盖率
153
85
 
154
- ## 🆕 v1.0.0 变更详情(2025-12-03)
86
+ **详细信息**: [查看 changelogs/v1.0.0.md](./changelogs/v1.0.0.md)
155
87
 
156
- ### 版本说明
88
+ ---
157
89
 
158
- - 正式版发布,生产就绪
159
- - 企业级质量标准(96/100 A+)
160
- - 已发布到 npm
90
+ ## 详细变更文档
161
91
 
162
- ---
92
+ > **说明**: 详细变更文档位于 `changelogs/` 目录
163
93
 
164
- ## 变更统计
94
+ ```
95
+ changelogs/
96
+ ├── README.md # 变更文档说明
97
+ ├── TEMPLATE.md # 变更文档模板
98
+ ├── v1.0.0.md # v1.0.0 详细变更
99
+ ├── v1.0.4.md # v1.0.4 详细变更
100
+ └── v1.0.5.md # v1.0.5 详细变更
101
+ ```
165
102
 
166
- | 版本系列 | 版本数 | 主要改进方向 |
167
- |---------|-------|------------|
168
- | v1.0.x | 3 | 稳定运行、生产就绪、批量操作优化 |
103
+ **注意**:
104
+ - `changelogs/` 目录包含所有版本的详细变更文档
105
+ - 本文件(CHANGELOG.md)仅提供版本概览和里程碑摘要
106
+ - 需求状态追踪见 [STATUS.md](./STATUS.md)
169
107
 
170
108
  ---
171
109
 
@@ -173,25 +111,22 @@ if (user.checkPassword('secret')) console.log('登录成功');
173
111
 
174
112
  ### 添加新版本的步骤
175
113
 
176
- 1. **创建需求文档**(如需要)
114
+ 1. **创建详细变更文档**
177
115
  ```bash
178
- cp plans/TEMPLATE.md plans/req-your-feature.md
179
- # 填充需求详细信息
116
+ cp changelogs/TEMPLATE.md changelogs/vX.Y.Z.md
117
+ # 填充详细变更信息
180
118
  ```
181
119
 
182
- 2. **更新 STATUS.md**
183
- - 在"发布计划"表格添加新版本行
184
- - 添加版本章节(### vX.Y.Z)
185
- - 在版本表格添加需求行
186
- - 链接到 plans/ 文档(如有)
187
-
188
- 3. **更新 CHANGELOG.md**
120
+ 2. **更新 CHANGELOG.md**(本文件)
189
121
  - 在"版本概览"表格最上方添加新行
190
- - 格式:`| [vX.Y.Z](STATUS.md#vxyz) | 日期 | 摘要 | [查看](STATUS.md#vxyz) |`
122
+ - 格式:`| [vX.Y.Z](./changelogs/vX.Y.Z.md) | 日期 | 摘要 | [查看](./changelogs/vX.Y.Z.md) |`
123
+
124
+ 3. **更新 STATUS.md**(如需要)
125
+ - 添加版本章节和需求状态
191
126
 
192
127
  4. **提交变更**
193
128
  ```bash
194
- git add STATUS.md CHANGELOG.md plans/
129
+ git add CHANGELOG.md changelogs/vX.Y.Z.md STATUS.md
195
130
  git commit -m "docs: 发布 vX.Y.Z"
196
131
  ```
197
132
 
@@ -210,58 +145,14 @@ if (user.checkPassword('secret')) console.log('登录成功');
210
145
 
211
146
  ---
212
147
 
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
148
  ## 相关文档
258
149
 
259
150
  - [STATUS.md](./STATUS.md) - 需求状态追踪
260
- - [plans/](./plans/README.md) - 需求详细文档
151
+ - [changelogs/](./changelogs/README.md) - 详细变更文档目录
261
152
  - [README.md](./README.md) - 项目说明
262
- - [changelogs/](./changelogs/README.md) - 历史详细变更(供参考)
153
+ - [docs/](./docs/INDEX.md) - API 文档
263
154
 
264
155
  ---
265
156
 
266
- **最后更新**: 2025-12-29
157
+ **最后更新**: 2026-01-08
267
158