Skip to content

Commit 2152b6f

Browse files
committed
feat:添加 deleteBatch,updateBatch 方法
1 parent 048e4ce commit 2152b6f

16 files changed

Lines changed: 3144 additions & 8 deletions

CHANGELOG.md

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,72 @@
11
# 变更日志 (CHANGELOG)
22

33
> **说明**: 版本摘要,详细需求见 [STATUS.md](STATUS.md)
4-
> **最后更新**: 2025-12-29
4+
> **最后更新**: 2025-12-30
55
66
---
77

88
## 版本概览
99

1010
| 版本 | 日期 | 变更摘要 | 详细 |
1111
|------|------|---------|------|
12+
| [v1.0.2](STATUS.md#v102) | 2025-12-30 | 新增批量操作方法(deleteBatch/updateBatch) | [查看](STATUS.md#v102) |
1213
| [v1.0.1](STATUS.md#v101) | 2025-12-29 | 稳定版本,生产就绪 | [查看](STATUS.md#v101) |
1314
| [v1.0.0](STATUS.md#v100) | 2025-12-03 | 正式发布,生产就绪,已发布到 npm | [查看](STATUS.md#v100) |
1415

1516
---
1617

1718

19+
## 🆕 v1.0.2 变更详情(2025-12-30)
20+
21+
### 新增功能 ✨
22+
23+
**批量操作方法** - 支持大数据量场景
24+
-**deleteBatch** - 批量删除方法
25+
- 流式查询,恒定内存占用(12KB)
26+
- 支持进度监控(实时百分比)
27+
- 4种错误处理策略(stop/skip/collect/retry)
28+
- 自动重试机制
29+
- 性能:36,385 条/秒(100万条数据实测)
30+
31+
-**updateBatch** - 批量更新方法
32+
- 流式查询,恒定内存占用(12KB)
33+
- 支持进度监控(实时百分比)
34+
- 支持所有 MongoDB 更新操作符
35+
- 4种错误处理策略 + 自动重试
36+
- 性能:35,365 条/秒(100万条数据实测)
37+
38+
### 性能数据 📊
39+
40+
```
41+
批量操作性能(100万条数据测试):
42+
- insertBatch: 49,493 条/秒
43+
- deleteBatch: 36,385 条/秒
44+
- updateBatch: 35,365 条/秒
45+
- 内存占用: 恒定 12KB
46+
```
47+
48+
### 测试覆盖 ✅
49+
50+
- 新增 31 个单元测试(deleteBatch: 14个,updateBatch: 17个)
51+
- 性能测试通过(100万条数据)
52+
- 测试覆盖率 > 90%
53+
54+
### 文档完善 📖
55+
56+
- 新增 `docs/deleteBatch.md` - 完整 API 文档(650行)
57+
- 新增 `docs/updateBatch.md` - 完整 API 文档(600行)
58+
- 新增 `examples/batch-operations.examples.js` - 8个真实业务场景
59+
- 更新 `README.md``docs/INDEX.md`
60+
61+
### 技术亮点 💡
62+
63+
-**完全复用 find 方法** - 0行重复代码,自动获得流式查询、慢查询日志等功能
64+
-**架构最简** - 单一流式查询实现,数据一致性有保证
65+
-**内存优化** - 流式查询,无论处理多少数据,内存占用恒定 12KB
66+
-**错误处理完善** - 4种策略 + 自动重试,适应不同业务场景
67+
68+
---
69+
1870
## 🆕 v1.0.1 变更详情(2025-12-29)
1971

2072
### 版本说明
@@ -45,7 +97,7 @@
4597

4698
| 版本系列 | 版本数 | 主要改进方向 |
4799
|---------|-------|------------|
48-
| v1.0.x | 2 | 稳定运行、生产就绪 |
100+
| v1.0.x | 3 | 稳定运行、生产就绪、批量操作优化 |
49101

50102
---
51103

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,9 @@ await db.close(); // 自动关闭SSH隧道
630630
- findAndCount
631631

632632
**性能优化**
633-
- 批量插入优化
633+
- insertBatch - 批量插入优化
634+
- deleteBatch - 批量删除(流式+进度监控)
635+
- updateBatch - 批量更新(流式+进度监控)
634636
- 只读事务优化
635637
- Count 队列控制
636638
- 连接池管理
@@ -803,8 +805,8 @@ const coldData = await nativeClient.db('mydb').collection('logs').find({});
803805
**CRUD 操作**:
804806
- [find](./docs/find.md) | [findOne](./docs/findOne.md) | [findPage](./docs/findPage.md)
805807
- [insertOne](./docs/insert-one.md) | [insertMany](./docs/insert-many.md) | [insertBatch](./docs/insertBatch.md)
806-
- [updateOne](./docs/update-one.md) | [updateMany](./docs/update-many.md) | [replaceOne](./docs/replace-one.md)
807-
- [deleteOne](./docs/delete-one.md) | [deleteMany](./docs/delete-many.md)
808+
- [updateOne](./docs/update-one.md) | [updateMany](./docs/update-many.md) | [updateBatch](./docs/updateBatch.md) | [replaceOne](./docs/replace-one.md)
809+
- [deleteOne](./docs/delete-one.md) | [deleteMany](./docs/delete-many.md) | [deleteBatch](./docs/deleteBatch.md)
808810

809811
**便利方法**:
810812
- [findOneById](./docs/find-one-by-id.md) | [findByIds](./docs/find-by-ids.md)

STATUS.md

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
# monSQLize 需求状态追踪
22

33
> **说明**: 追踪所有版本的需求状态
4-
> **最后更新**: 2025-12-29
4+
> **最后更新**: 2025-12-30
55
66
---
77

88
## 📑 目录导航
99

1010
- [发布计划](#发布计划)
11+
- [v1.0.2 - ✅ 已完成](#v102)
1112
- [v1.0.1 - ✅ 已完成](#v101)
1213
- [v1.0.0 - ✅ 已发布](#v100)
1314
- [需求状态说明](#需求状态说明)
@@ -19,11 +20,64 @@
1920

2021
| 版本 | 发布状态 | 发布日期 | 需求数 | 进度 |
2122
|------|---------|---------|--------|------|
23+
| [v1.0.2](#v102) | ✅ 已完成 | 2025-12-30 | 1 | 1/1 完成 |
2224
| [v1.0.1](#v101) | ✅ 已完成 | 2025-12-29 | 1 | 1/1 完成 |
2325
| [v1.0.0](#v100) | ✅ 已发布 | 2025-12-03 | 1 | 1/1 完成 |
2426

2527
---
2628

29+
## v1.0.2 {#v102}
30+
31+
**发布状态**: ✅ 已完成
32+
**发布日期**: 2025-12-30
33+
**版本类型**: 补丁版本(PATCH)
34+
35+
**进度**: 1个需求 | 1个已完成 | 0个进行中 | 0个未开始
36+
37+
| 需求标题 | 状态 | 优先级 | 详细 |
38+
|---------|------|--------|------|
39+
| 批量操作方法(deleteBatch/updateBatch) | ✅ 已完成 | P1 | [方案文档](plans/) |
40+
41+
### 实现状态统计
42+
43+
| 类别 | 数量 | 状态 |
44+
|------|------|------|
45+
| 核心代码文件 | 3 | ✅ 完成 |
46+
| 测试文件 | 3 | ✅ 完成 |
47+
| 示例文件 | 1 | ✅ 完成 |
48+
| 文档 | 2 | ✅ 完成 |
49+
50+
### 新增功能
51+
52+
-**deleteBatch** - 批量删除方法
53+
- 流式查询(恒定内存 12KB)
54+
- 进度监控(实时百分比)
55+
- 错误处理(4种策略)
56+
- 自动重试机制
57+
- 性能:36,385 条/秒
58+
59+
-**updateBatch** - 批量更新方法
60+
- 流式查询(恒定内存 12KB)
61+
- 进度监控(实时百分比)
62+
- 支持所有更新操作符
63+
- 错误处理(4种策略)
64+
- 性能:35,365 条/秒
65+
66+
### 测试覆盖
67+
68+
- ✅ 单元测试:31个测试用例(14个 deleteBatch + 17个 updateBatch)
69+
- ✅ 性能测试:100万条数据测试通过
70+
- ✅ 测试覆盖率:> 90%
71+
72+
### 文档完善
73+
74+
- ✅ API 文档:`docs/deleteBatch.md`(650行)
75+
- ✅ API 文档:`docs/updateBatch.md`(600行)
76+
- ✅ 示例代码:`examples/batch-operations.examples.js`(8个场景)
77+
- ✅ 更新:`README.md``docs/INDEX.md`
78+
79+
---
80+
2781
## v1.0.1 {#v101}
2882

2983
**发布状态**: ✅ 已完成

docs/INDEX.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
| [update-operations.md](update-operations.md) | 所有更新方法 | 更新操作完整指南 |
5555
| [update-one.md](update-one.md) | `updateOne()` | 更新单个文档 |
5656
| [update-many.md](update-many.md) | `updateMany()` | 批量更新文档 |
57+
| [updateBatch.md](updateBatch.md) | `updateBatch()` | 大批量更新(分批+重试)⭐ |
5758
| [replace-one.md](replace-one.md) | `replaceOne()` | 完整替换文档 |
5859
| [find-one-and-update.md](find-one-and-update.md) | `findOneAndUpdate()` | 原子更新并返回 |
5960
| [find-one-and-replace.md](find-one-and-replace.md) | `findOneAndReplace()` | 原子替换并返回 |
@@ -71,6 +72,7 @@
7172
|------|------|------|
7273
| [delete-one.md](delete-one.md) | `deleteOne()` | 删除单个文档 |
7374
| [delete-many.md](delete-many.md) | `deleteMany()` | 批量删除文档 |
75+
| [deleteBatch.md](deleteBatch.md) | `deleteBatch()` | 大批量删除(分批+重试)⭐ |
7476
| [find-one-and-delete.md](find-one-and-delete.md) | `findOneAndDelete()` | 原子删除并返回 |
7577

7678
---

0 commit comments

Comments
 (0)